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;
     }


Reply via email to