From 32207e8b655f99592d43831b3106208d701f66b9 Mon Sep 17 00:00:00 2001 From: "Donald J. Brown" Date: Wed, 27 Sep 2006 03:19:54 +0000 Subject: [PATCH] Making the list of struts config files configurable WW-1456 git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@450297 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/struts2/StrutsConstants.java | 3 +++ .../apache/struts2/dispatcher/Dispatcher.java | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/org/apache/struts2/StrutsConstants.java b/core/src/main/java/org/apache/struts2/StrutsConstants.java index d8b9a76ab..6cd01089f 100644 --- a/core/src/main/java/org/apache/struts2/StrutsConstants.java +++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java @@ -127,4 +127,7 @@ public final class StrutsConstants { /** Allows one to disable dynamic method invocation from the URL */ public static final String STRUTS_ENABLE_DYNAMIC_METHOD_INVOCATION = "struts.enable.DynamicMethodInvocation"; + + /** A list of configuration files automatically loaded by Struts */ + public static final String STRUTS_CONFIGURATION_FILES = "struts.configuration.files"; } diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java index 3d7fcc724..46c5d80b3 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java @@ -251,12 +251,18 @@ public class Dispatcher { } configurationManager = new ConfigurationManager(); - - // Load old xwork files - configurationManager.addConfigurationProvider(new XmlConfigurationProvider("xwork.xml", false)); - - // Load Struts config files - configurationManager.addConfigurationProvider(new StrutsXmlConfigurationProvider(false)); + String configFiles = Settings.get(StrutsConstants.STRUTS_CONFIGURATION_FILES); + if (configFiles == null) { + configFiles = "struts-default.xml,struts-plugins.xml,struts.xml"; + } + String[] files = configFiles.split("\\s*[,]\\s*"); + for (String file : files) { + if ("xwork.xml".equals(file)) { + configurationManager.addConfigurationProvider(new XmlConfigurationProvider(file, false)); + } else { + configurationManager.addConfigurationProvider(new StrutsXmlConfigurationProvider(file, false)); + } + } synchronized(Dispatcher.class) { if (dispatcherListeners.size() > 0) {