diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerSetup.java index 0395ad07d..2949f999d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerSetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/FreemarkerSetup.java @@ -18,7 +18,6 @@ public class FreemarkerSetup implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent event) { ServletContext sc = event.getServletContext(); - BaseTemplateModel.setServletContext(sc); FreemarkerComponentGenerator.setServletContext(sc); UrlBuilder.contextPath = sc.getContextPath(); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/BaseTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/BaseTemplateModel.java index 740377a49..0bf05c3f6 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/BaseTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/BaseTemplateModel.java @@ -20,8 +20,6 @@ public abstract class BaseTemplateModel { private static final String URI_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&%'()*+,;="; - protected static ServletContext servletContext; - // Convenience method so subclasses can call getUrl(path) protected String getUrl(String path) { return UrlBuilder.getUrl(path); @@ -73,12 +71,4 @@ public abstract class BaseTemplateModel { AntiScript.cleanMapValues(map); } - protected static ServletContext getServletContext() { - return servletContext; - } - - public static void setServletContext(ServletContext context) { - servletContext = context; - } - } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java index b01efe97c..53b5f3982 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/BaseIndividualTemplateModel.java @@ -6,6 +6,8 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import javax.servlet.ServletContext; + import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -37,12 +39,14 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel { protected final Individual individual; protected final LoginStatusBean loginStatusBean; protected final VitroRequest vreq; + private final ServletContext ctx; private final boolean editing; protected GroupedPropertyList propertyList; public BaseIndividualTemplateModel(Individual individual, VitroRequest vreq) { this.vreq = vreq; + this.ctx = vreq.getSession().getServletContext(); this.individual = individual; this.loginStatusBean = LoginStatusBean.getBean(vreq); // Needed for getting portal-sensitive urls. Remove if multi-portal support is removed. @@ -54,7 +58,7 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel { boolean isVClass = individual.isVClass(vClassUri); // If reasoning is asynchronous (under RDB), this inference may not have been made yet. // Check the superclasses of the individual's vclass. - SimpleReasoner simpleReasoner = (SimpleReasoner)getServletContext().getAttribute(SimpleReasoner.class.getName()); + SimpleReasoner simpleReasoner = (SimpleReasoner) ctx.getAttribute(SimpleReasoner.class.getName()); if (!isVClass && simpleReasoner != null && simpleReasoner.isABoxReasoningAsynchronous()) { log.debug("Checking superclasses to see if individual is a " + vClassUri + " because reasoning is asynchronous"); List directVClasses = individual.getVClasses(true); @@ -216,7 +220,7 @@ public abstract class BaseIndividualTemplateModel extends BaseTemplateModel { public String selfEditingId() { String id = null; String idMatchingProperty = - ConfigurationProperties.getBean(getServletContext()).getProperty("selfEditing.idMatchingProperty"); + ConfigurationProperties.getBean(ctx).getProperty("selfEditing.idMatchingProperty"); if (! StringUtils.isBlank(idMatchingProperty)) { WebappDaoFactory wdf = vreq.getUnfilteredWebappDaoFactory(); Collection ids = diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel_PropertyListConfigTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel_PropertyListConfigTest.java index cf405b7b0..9c92eb280 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel_PropertyListConfigTest.java +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyTemplateModel_PropertyListConfigTest.java @@ -135,8 +135,6 @@ public class ObjectPropertyTemplateModel_PropertyListConfigTest extends subject = new IndividualImpl(); - BaseTemplateModel.setServletContext(ctx); - Configuration fmConfig = new Configuration(); vreq.setAttribute("freemarkerConfig", fmConfig); tl = new TemplateLoaderStub();