From d13faf9eeee1eabfbeec922e372a82d5b73dd2d7 Mon Sep 17 00:00:00 2001 From: "Donald J. Brown" Date: Sun, 29 Oct 2006 21:19:30 +0000 Subject: [PATCH] Changed xwork dep to snapshot, fixed config files to only reload once per request WW-1483 git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@468999 13f79535-47bb-0310-9956-ffa450edef68 --- assembly/pom.xml | 2 +- core/pom.xml | 2 +- .../StrutsXmlConfigurationProvider.java | 19 ++++++++++++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/assembly/pom.xml b/assembly/pom.xml index e64f4d607..ea0e8ce9a 100644 --- a/assembly/pom.xml +++ b/assembly/pom.xml @@ -103,7 +103,7 @@ opensymphony xwork javadoc - 2.0-beta-1 + 2.0-SNAPSHOT ${project.build.directory}/xwork-apidocs diff --git a/core/pom.xml b/core/pom.xml index 25d3342c9..071c42086 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -39,7 +39,7 @@ opensymphony xwork - 2.0-beta-1 + 2.0-SNAPSHOT diff --git a/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java b/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java index 021bbd6a2..1d03fe0b7 100644 --- a/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java +++ b/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java @@ -17,6 +17,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.config.Configuration; import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider; /** @@ -27,6 +28,7 @@ public class StrutsXmlConfigurationProvider extends XmlConfigurationProvider { private static final Log LOG = LogFactory.getLog(StrutsXmlConfigurationProvider.class); private File baseDir = null; private String filename; + private String reloadKey; /** * Constructs the configuration provider @@ -46,6 +48,7 @@ public class StrutsXmlConfigurationProvider extends XmlConfigurationProvider { public StrutsXmlConfigurationProvider(String filename, boolean errorIfMissing) { super(filename, errorIfMissing); this.filename = filename; + reloadKey = "configurationReload-"+filename; Map dtdMappings = new HashMap(getDtdMappings()); dtdMappings.put("-//Apache Software Foundation//DTD Struts Configuration 2.0//EN", "struts-2.0.dtd"); setDtdMappings(dtdMappings); @@ -54,6 +57,18 @@ public class StrutsXmlConfigurationProvider extends XmlConfigurationProvider { this.baseDir = file.getParentFile(); } } + + + + /* (non-Javadoc) + * @see com.opensymphony.xwork2.config.providers.XmlConfigurationProvider#init(com.opensymphony.xwork2.config.Configuration) + */ + @Override + public void init(Configuration configuration) { + ActionContext ctx = ActionContext.getContext(); + ctx.put(reloadKey, Boolean.TRUE); + super.init(configuration); + } /** * Look for the configuration file on the classpath and in the file system @@ -106,9 +121,7 @@ public class StrutsXmlConfigurationProvider extends XmlConfigurationProvider { @Override public boolean needsReload() { ActionContext ctx = ActionContext.getContext(); - String key = "configurationReload-"+filename; - if (ctx.get(key) == null) { - ctx.put(key, Boolean.TRUE); + if (ctx.get(reloadKey) == null) { return super.needsReload(); } return false;