Author: jafl Date: Wed Feb 2 21:13:23 2011 New Revision: 1066628 URL: http://svn.apache.org/viewvc?rev=1066628&view=rev Log: WW-3513 allow derived classes to create derived classes of some objects
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1066628&r1=1066627&r2=1066628&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Wed Feb 2 21:13:23 2011 @@ -321,9 +321,9 @@ public class Dispatcher { for (String file : files) { if (file.endsWith(".xml")) { if ("xwork.xml".equals(file)) { - configurationManager.addConfigurationProvider(new XmlConfigurationProvider(file, false)); + configurationManager.addConfigurationProvider(createXmlConfigurationProvider(file, false)); } else { - configurationManager.addConfigurationProvider(new StrutsXmlConfigurationProvider(file, false, servletContext)); + configurationManager.addConfigurationProvider(createStrutsXmlConfigurationProvider(file, false, servletContext)); } } else { throw new IllegalArgumentException("Invalid configuration file name"); @@ -331,6 +331,14 @@ public class Dispatcher { } } + protected XmlConfigurationProvider createXmlConfigurationProvider(String filename, boolean errorIfMissing) { + return new XmlConfigurationProvider(filename, errorIfMissing); + } + + protected XmlConfigurationProvider createStrutsXmlConfigurationProvider(String filename, boolean errorIfMissing, ServletContext ctx) { + return new StrutsXmlConfigurationProvider(filename, errorIfMissing, ctx); + } + private void init_CustomConfigurationProviders() { String configProvs = initParams.get("configProviders"); if (configProvs != null) { @@ -402,7 +410,7 @@ public class Dispatcher { public void init() { if (configurationManager == null) { - configurationManager = new ConfigurationManager(BeanSelectionProvider.DEFAULT_BEAN_NAME); + configurationManager = createConfigurationManager(BeanSelectionProvider.DEFAULT_BEAN_NAME); } try { @@ -430,6 +438,10 @@ public class Dispatcher { } } + protected ConfigurationManager createConfigurationManager(String name) { + return new ConfigurationManager(name); + } + /** * Load Action class for mapping and invoke the appropriate Action method, or go directly to the Result. * <p/> Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java?rev=1066628&r1=1066627&r2=1066628&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java Wed Feb 2 21:13:23 2011 @@ -61,7 +61,7 @@ public class ConfigurationManager { */ public synchronized Configuration getConfiguration() { if (configuration == null) { - setConfiguration(new DefaultConfiguration(defaultFrameworkBeanName)); + setConfiguration(createConfiguration(defaultFrameworkBeanName)); try { configuration.reloadContainer(getContainerProviders()); } catch (ConfigurationException e) { @@ -75,6 +75,10 @@ public class ConfigurationManager { return configuration; } + protected Configuration createConfiguration(String beanName) { + return new DefaultConfiguration(beanName); + } + public synchronized void setConfiguration(Configuration configuration) { this.configuration = configuration; }