Merge pull request #452 from apache/WW-5078-removes-xwork-dtds

[WW-5078] Removes support for <xwork> DTDs
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java b/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java
index 067a1f9..41e24b1 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/ConfigurationManager.java
@@ -19,8 +19,7 @@
 package com.opensymphony.xwork2.config;
 
 import com.opensymphony.xwork2.config.impl.DefaultConfiguration;
-import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider;
-import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.config.providers.StrutsDefaultConfigurationProvider;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.struts2.StrutsConstants;
@@ -86,8 +85,8 @@
     /**
      * <p>
      * Get the current list of ConfigurationProviders. If no custom ConfigurationProviders have been added, this method
-     * will return a list containing only the default ConfigurationProvider, XMLConfigurationProvider. If a custom
-     * ConfigurationProvider has been added, then the XmlConfigurationProvider must be added by hand.
+     * will return a list containing only a default ConfigurationProvider, {@link StrutsDefaultConfigurationProvider}.
+     * If a custom ConfigurationProvider has been added, then the StrutsDefaultConfigurationProvider must be added by hand.
      * </p>
      *
      * <p>
@@ -101,8 +100,7 @@
         providerLock.lock();
         try {
             if (containerProviders.size() == 0) {
-                containerProviders.add(new XWorkConfigurationProvider());
-                containerProviders.add(new XmlConfigurationProvider("xwork.xml", false));
+                containerProviders.add(new StrutsDefaultConfigurationProvider());
             }
 
             return containerProviders;
@@ -160,7 +158,7 @@
      */
     public synchronized void destroyConfiguration() {
         clearContainerProviders(); // let's destroy the ConfigurationProvider first
-        containerProviders = new CopyOnWriteArrayList<ContainerProvider>();
+        containerProviders = new CopyOnWriteArrayList<>();
         if (configuration != null)
             configuration.destroy(); // let's destroy it first, before nulling it.
         configuration = null;
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
index b21dc45..997c5f1 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/MockConfiguration.java
@@ -21,7 +21,7 @@
 import com.opensymphony.xwork2.config.*;
 import com.opensymphony.xwork2.config.entities.PackageConfig;
 import com.opensymphony.xwork2.config.entities.UnknownHandlerConfig;
-import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider;
+import com.opensymphony.xwork2.config.providers.StrutsDefaultConfigurationProvider;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.ContainerBuilder;
 import com.opensymphony.xwork2.inject.Scope;
@@ -50,7 +50,7 @@
         //this cannot be done in the constructor, as it causes an infinite loop
         builder.factory(Configuration.class, MockConfiguration.class, Scope.SINGLETON);
         LocatableProperties props = new LocatableProperties();
-        new XWorkConfigurationProvider().register(builder, props);
+        new StrutsDefaultConfigurationProvider().register(builder, props);
         builder.constant(StrutsConstants.STRUTS_DEVMODE, "false");
         builder.constant(StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, "true");
         builder.constant(StrutsConstants.STRUTS_ENABLE_OGNL_EXPRESSION_CACHE, "true");
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/StrutsDefaultConfigurationProvider.java
similarity index 99%
rename from core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
rename to core/src/main/java/com/opensymphony/xwork2/config/providers/StrutsDefaultConfigurationProvider.java
index 63d8fab..ccdb782 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/StrutsDefaultConfigurationProvider.java
@@ -123,7 +123,7 @@
 import java.util.Map;
 import java.util.Set;
 
-public class XWorkConfigurationProvider implements ConfigurationProvider {
+public class StrutsDefaultConfigurationProvider implements ConfigurationProvider {
 
     public void destroy() {
     }
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
index ce1587d..e02338f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
@@ -72,6 +72,7 @@
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.Vector;
 
@@ -85,48 +86,36 @@
  * @author Neo
  * @version $Revision$
  */
-public class XmlConfigurationProvider implements ConfigurationProvider {
+public abstract class XmlConfigurationProvider implements ConfigurationProvider {
 
     private static final Logger LOG = LogManager.getLogger(XmlConfigurationProvider.class);
 
+    private final String configFileName;
+    private final Set<String> loadedFileUrls = new HashSet<>();
+    private final Map<String, Element> declaredPackages = new HashMap<>();
+
     private List<Document> documents;
     private Set<String> includedFileNames;
-    private String configFileName;
     private ObjectFactory objectFactory;
 
-    private final Set<String> loadedFileUrls = new HashSet<>();
-    private boolean errorIfMissing;
-    private Map<String, String> dtdMappings;
+    private Map<String, String> dtdMappings = new HashMap<>();
     private Configuration configuration;
+
     private boolean throwExceptionOnDuplicateBeans = true;
-    private final Map<String, Element> declaredPackages = new HashMap<>();
 
     private FileManager fileManager;
     private ValueSubstitutor valueSubstitutor;
 
     public XmlConfigurationProvider() {
-        this("xwork.xml", true);
+        this("struts.xml", true);
     }
 
     public XmlConfigurationProvider(String filename) {
         this(filename, true);
     }
 
-    public XmlConfigurationProvider(String filename, boolean errorIfMissing) {
+    public XmlConfigurationProvider(String filename, @Deprecated boolean notUsed) {
         this.configFileName = filename;
-        this.errorIfMissing = errorIfMissing;
-
-        Map<String, String> mappings = new HashMap<>();
-        mappings.put("-//Apache Struts//XWork 2.6//EN", "xwork-2.6.dtd");
-        mappings.put("-//Apache Struts//XWork 2.5//EN", "xwork-2.5.dtd");
-        mappings.put("-//Apache Struts//XWork 2.3//EN", "xwork-2.3.dtd");
-        mappings.put("-//Apache Struts//XWork 2.1.3//EN", "xwork-2.1.3.dtd");
-        mappings.put("-//Apache Struts//XWork 2.1//EN", "xwork-2.1.dtd");
-        mappings.put("-//Apache Struts//XWork 2.0//EN", "xwork-2.0.dtd");
-        mappings.put("-//Apache Struts//XWork 1.1.1//EN", "xwork-1.1.1.dtd");
-        mappings.put("-//Apache Struts//XWork 1.1//EN", "xwork-1.1.dtd");
-        mappings.put("-//Apache Struts//XWork 1.0//EN", "xwork-1.0.dtd");
-        setDtdMappings(mappings);
     }
 
     public void setThrowExceptionOnDuplicateBeans(boolean val) {
@@ -182,11 +171,7 @@
 
         final XmlConfigurationProvider xmlConfigurationProvider = (XmlConfigurationProvider) o;
 
-        if ((configFileName != null) ? (!configFileName.equals(xmlConfigurationProvider.configFileName)) : (xmlConfigurationProvider.configFileName != null)) {
-            return false;
-        }
-
-        return true;
+        return Objects.equals(configFileName, xmlConfigurationProvider.configFileName);
     }
 
     @Override
@@ -1078,12 +1063,8 @@
             }
 
             if (urls == null || !urls.hasNext()) {
-                if (errorIfMissing) {
-                    throw new ConfigurationException("Could not open files of the name " + fileName, ioException);
-                } else {
-                    LOG.trace("Unable to locate configuration files of the name {}, skipping", fileName);
-                    return docs;
-                }
+                LOG.debug("Ignoring file that does not exist: " + fileName, ioException);
+                return docs;
             }
 
             URL url = null;
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/XWorkTestCaseHelper.java b/core/src/main/java/com/opensymphony/xwork2/util/XWorkTestCaseHelper.java
index bde73ca..e139f05 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/XWorkTestCaseHelper.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/XWorkTestCaseHelper.java
@@ -20,7 +20,7 @@
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.config.*;
-import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider;
+import com.opensymphony.xwork2.config.providers.StrutsDefaultConfigurationProvider;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.ContainerBuilder;
@@ -33,7 +33,7 @@
 
     public static ConfigurationManager setUp() throws Exception {
         ConfigurationManager configurationManager = new ConfigurationManager(Container.DEFAULT_NAME);
-        configurationManager.addContainerProvider(new XWorkConfigurationProvider());
+        configurationManager.addContainerProvider(new StrutsDefaultConfigurationProvider());
         Configuration config = configurationManager.getConfiguration();
         Container container = config.getContainer();
         
@@ -62,7 +62,7 @@
             }
             
         });
-        configurationManager.addContainerProvider(new XWorkConfigurationProvider());
+        configurationManager.addContainerProvider(new StrutsDefaultConfigurationProvider());
         for (ConfigurationProvider prov : providers) {
             if (prov instanceof XmlConfigurationProvider) {
                 ((XmlConfigurationProvider)prov).setThrowExceptionOnDuplicateBeans(false);
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 5f4bf9e..f876d06 100644
--- a/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java
@@ -51,11 +51,21 @@
      *
      * @param errorIfMissing If we should throw an exception if the file can't be found
      */
+    @Deprecated
     public StrutsXmlConfigurationProvider(boolean errorIfMissing) {
         this("struts.xml", errorIfMissing, null);
     }
 
     /**
+     * Constructs the configuration provider based on the provided config file
+     *
+     * @param filename file with Struts configuration
+     */
+    public StrutsXmlConfigurationProvider(String filename) {
+        this(filename, false, null);
+    }
+
+    /**
      * Constructs the configuration provider
      *
      * @param filename The filename to look for
@@ -66,7 +76,7 @@
         super(filename, errorIfMissing);
         this.servletContext = ctx;
         this.filename = filename;
-        reloadKey = "configurationReload-"+filename;
+        reloadKey = "configurationReload-" + filename;
         Map<String,String> dtdMappings = new HashMap<String,String>(getDtdMappings());
         dtdMappings.put("-//Apache Software Foundation//DTD Struts Configuration 2.0//EN", "struts-2.0.dtd");
         dtdMappings.put("-//Apache Software Foundation//DTD Struts Configuration 2.1//EN", "struts-2.1.dtd");
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 eeb813f..8d7b5fb 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -446,7 +446,7 @@
             String[] classes = configClasses.split("\\s*[,]\\s*");
             for (String cname : classes) {
                 try {
-                    Class cls = ClassLoaderUtil.loadClass(cname, this.getClass());
+                    Class<?> cls = ClassLoaderUtil.loadClass(cname, this.getClass());
                     StrutsJavaConfiguration config = (StrutsJavaConfiguration) cls.newInstance();
                     configurationManager.addContainerProvider(createJavaConfigurationProvider(config));
                 } catch (InstantiationException e) {
diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml
index 8d30cf4..045d453 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -31,8 +31,8 @@
     and {@link com.opensymphony.xwork2.inject.Inject}
 -->
 <!DOCTYPE struts PUBLIC
-    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
-    "http://struts.apache.org/dtds/struts-2.5.dtd">
+    "-//Apache Software Foundation//DTD Struts Configuration 2.6//EN"
+    "http://struts.apache.org/dtds/struts-2.6.dtd">
 
 <struts>
 
@@ -401,10 +401,10 @@
                 <interceptor-ref name="coepInterceptor">
                     <param name="enforcingMode">false</param>
                     <param name="disabled">false</param>
-                    <param name="exemptedPaths"></param>
+                    <param name="exemptedPaths"/>
                 </interceptor-ref>
                 <interceptor-ref name="coopInterceptor">
-                    <param name="exemptedPaths"></param>
+                    <param name="exemptedPaths"/>
                     <param name="mode">same-origin</param>
                 </interceptor-ref>
                 <interceptor-ref name="fetchMetadata"/>
diff --git a/core/src/main/resources/xwork-1.0.dtd b/core/src/main/resources/xwork-1.0.dtd
deleted file mode 100644
index 23661a1..0000000
--- a/core/src/main/resources/xwork-1.0.dtd
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!--
-   XWork Configuraion DTD.
-   Use the following DOCTYPE.
-   
-   <!DOCTYPE xwork PUBLIC 
-		"-//Apache Struts//XWork 1.0//EN"
-		"http://struts.apache.org/dtds/xwork-1.0.dtd">
--->
-
-<!ELEMENT xwork (package|include)*>
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, global-results?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
-    externalReferenceResolver NMTOKEN #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref+)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (param*)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT external-ref (#PCDATA)>
-<!ATTLIST external-ref
-    name NMTOKEN #REQUIRED
-    required (true|false) "true"
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT action (param|result|interceptor-ref|external-ref)*>
-<!ATTLIST action
-name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #REQUIRED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-
diff --git a/core/src/main/resources/xwork-1.1.1.dtd b/core/src/main/resources/xwork-1.1.1.dtd
deleted file mode 100644
index c8b01b4..0000000
--- a/core/src/main/resources/xwork-1.1.1.dtd
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-   
-   <!DOCTYPE xwork PUBLIC 
-		"-//Apache Struts//XWork 1.0//EN"
-		"http://struts.apache.org/dtds/xwork-1.1.1.dtd">
--->
-
-<!ELEMENT xwork (package|include)*>
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, global-results?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
-    externalReferenceResolver NMTOKEN #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref+)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (param*)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (param*)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT external-ref (#PCDATA)>
-<!ATTLIST external-ref
-    name NMTOKEN #REQUIRED
-    required (true|false) "true"
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action (param|result|interceptor-ref|exception-mapping|external-ref)*>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-1.1.2.dtd b/core/src/main/resources/xwork-1.1.2.dtd
deleted file mode 100644
index 296c8a5..0000000
--- a/core/src/main/resources/xwork-1.1.2.dtd
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-
-   <!DOCTYPE xwork PUBLIC
-		"-//Apache Struts//XWork 1.0//EN"
-		"http://struts.apache.org/dtds/xwork-1.1.2.dtd">
--->
-
-<!ELEMENT xwork (parameters?, (package|include)*)>
-
-<!ELEMENT parameters (parameter*)>
-
-<!ELEMENT parameter (#PCDATA)>
-<!ATTLIST parameter
-    name CDATA #REQUIRED
-    value CDATA #REQUIRED
->
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, global-results?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
-    externalReferenceResolver NMTOKEN #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref+)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (param*)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (param*)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT external-ref (#PCDATA)>
-<!ATTLIST external-ref
-    name NMTOKEN #REQUIRED
-    required (true|false) "true"
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action (param|result|interceptor-ref|exception-mapping|external-ref)*>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-1.1.dtd b/core/src/main/resources/xwork-1.1.dtd
deleted file mode 100644
index f1fbfd7..0000000
--- a/core/src/main/resources/xwork-1.1.dtd
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-   
-   <!DOCTYPE xwork PUBLIC 
-		"-//Apache Struts//XWork 1.0//EN"
-		"http://struts.apache.org/dtds/xwork-1.1.dtd">
--->
-
-<!ELEMENT xwork (package|include)*>
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, global-results?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
-    externalReferenceResolver NMTOKEN #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref+)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (param*)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT external-ref (#PCDATA)>
-<!ATTLIST external-ref
-    name NMTOKEN #REQUIRED
-    required (true|false) "true"
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action (param|result|interceptor-ref|exception-mapping|external-ref)*>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-
diff --git a/core/src/main/resources/xwork-2.0.dtd b/core/src/main/resources/xwork-2.0.dtd
deleted file mode 100644
index c9c3b3b..0000000
--- a/core/src/main/resources/xwork-2.0.dtd
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-   
-   <!DOCTYPE xwork PUBLIC 
-	"-//Apache Struts//XWork 2.0//EN"
-	"http://struts.apache.org/dtds/xwork-2.0.dtd">
--->
-
-<!ELEMENT xwork (package|include|bean|constant)*>
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref*)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (#PCDATA)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (#PCDATA)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-class-ref (#PCDATA)>
-<!ATTLIST default-class-ref
-   class CDATA #REQUIRED
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action (param|result|interceptor-ref|exception-mapping)*>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!ELEMENT bean (#PCDATA)>
-<!ATTLIST bean
-    type CDATA #IMPLIED
-    name CDATA #IMPLIED
-    class CDATA #REQUIRED
-    scope CDATA #IMPLIED
-    static CDATA #IMPLIED
-    optional CDATA #IMPLIED
->
-
-<!ELEMENT constant (#PCDATA)>
-<!ATTLIST constant
-    name CDATA #REQUIRED
-    value CDATA #REQUIRED    
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-2.1.3.dtd b/core/src/main/resources/xwork-2.1.3.dtd
deleted file mode 100644
index bce8e23..0000000
--- a/core/src/main/resources/xwork-2.1.3.dtd
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-
-   <!DOCTYPE xwork PUBLIC
-	"-//Apache Struts//XWork 2.1.3//EN"
-	"http://struts.apache.org/dtds/xwork-2.1.3.dtd">
--->
-
-<!ELEMENT xwork ((package|include|bean|constant)*, unknown-handler-stack?)>
-<!ATTLIST xwork
-    order CDATA #IMPLIED
->
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref*)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (#PCDATA)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (#PCDATA)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-class-ref (#PCDATA)>
-<!ATTLIST default-class-ref
-   class CDATA #REQUIRED
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action (param|result|interceptor-ref|exception-mapping)*>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!ELEMENT bean (#PCDATA)>
-<!ATTLIST bean
-    type CDATA #IMPLIED
-    name CDATA #IMPLIED
-    class CDATA #REQUIRED
-    scope CDATA #IMPLIED
-    static CDATA #IMPLIED
-    optional CDATA #IMPLIED
->
-
-<!ELEMENT constant (#PCDATA)>
-<!ATTLIST constant
-    name CDATA #REQUIRED
-    value CDATA #REQUIRED
->
-
-<!ELEMENT unknown-handler-stack (unknown-handler-ref*)>
-<!ELEMENT unknown-handler-ref (#PCDATA)>
-<!ATTLIST unknown-handler-ref
-    name CDATA #REQUIRED
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-2.1.dtd b/core/src/main/resources/xwork-2.1.dtd
deleted file mode 100644
index 40db431..0000000
--- a/core/src/main/resources/xwork-2.1.dtd
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-
-   <!DOCTYPE xwork PUBLIC
-	"-//Apache Struts//XWork 2.1//EN"
-	"http://struts.apache.org/dtds/xwork-2.1.dtd">
--->
-
-<!ELEMENT xwork ((package|include|bean|constant)*, unknown-handler-stack?)>
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref*)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (#PCDATA)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (#PCDATA)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-class-ref (#PCDATA)>
-<!ATTLIST default-class-ref
-   class CDATA #REQUIRED
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action (param|result|interceptor-ref|exception-mapping)*>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!ELEMENT bean (#PCDATA)>
-<!ATTLIST bean
-    type CDATA #IMPLIED
-    name CDATA #IMPLIED
-    class CDATA #REQUIRED
-    scope CDATA #IMPLIED
-    static CDATA #IMPLIED
-    optional CDATA #IMPLIED
->
-
-<!ELEMENT constant (#PCDATA)>
-<!ATTLIST constant
-    name CDATA #REQUIRED
-    value CDATA #REQUIRED
->
-
-<!ELEMENT unknown-handler-stack (unknown-handler-ref*)>
-<!ELEMENT unknown-handler-ref (#PCDATA)>
-<!ATTLIST unknown-handler-ref
-    name CDATA #REQUIRED
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-2.3.dtd b/core/src/main/resources/xwork-2.3.dtd
deleted file mode 100644
index 2a81073..0000000
--- a/core/src/main/resources/xwork-2.3.dtd
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-
-   <!DOCTYPE xwork PUBLIC
-	"-//Apache Struts//XWork 2.3//EN"
-	"http://struts.apache.org/dtds/xwork-2.3.dtd">
--->
-
-<!ELEMENT xwork ((package|include|bean|constant)*, unknown-handler-stack?)>
-<!ATTLIST xwork
-    order CDATA #IMPLIED
->
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
-    strict-method-invocation CDATA #IMPLIED
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref*)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (#PCDATA)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (#PCDATA)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-class-ref (#PCDATA)>
-<!ATTLIST default-class-ref
-   class CDATA #REQUIRED
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action ((param|result|interceptor-ref|exception-mapping)*,allowed-methods?)>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT allowed-methods (#PCDATA)>
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!ELEMENT bean (#PCDATA)>
-<!ATTLIST bean
-    type CDATA #IMPLIED
-    name CDATA #IMPLIED
-    class CDATA #REQUIRED
-    scope CDATA #IMPLIED
-    static CDATA #IMPLIED
-    optional CDATA #IMPLIED
->
-
-<!ELEMENT constant (#PCDATA)>
-<!ATTLIST constant
-    name CDATA #REQUIRED
-    value CDATA #REQUIRED
->
-
-<!ELEMENT unknown-handler-stack (unknown-handler-ref*)>
-<!ELEMENT unknown-handler-ref (#PCDATA)>
-<!ATTLIST unknown-handler-ref
-    name CDATA #REQUIRED
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-2.5.dtd b/core/src/main/resources/xwork-2.5.dtd
deleted file mode 100644
index 4d61e8a..0000000
--- a/core/src/main/resources/xwork-2.5.dtd
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-
-   <!DOCTYPE xwork PUBLIC
-	"-//Apache Struts//XWork 2.5//EN"
-	"http://struts.apache.org/dtds/xwork-2.5.dtd">
--->
-
-<!ELEMENT xwork ((package|include|bean|constant)*, unknown-handler-stack?)>
-<!ATTLIST xwork
-    order CDATA #IMPLIED
->
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-allowed-methods?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
-    strict-method-invocation (true|false) "true"
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref*)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (#PCDATA)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (#PCDATA)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-class-ref (#PCDATA)>
-<!ATTLIST default-class-ref
-   class CDATA #REQUIRED
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-allowed-methods (#PCDATA)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action ((param|result|interceptor-ref|exception-mapping)*,allowed-methods?)>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT allowed-methods (#PCDATA)>
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!ELEMENT bean (#PCDATA)>
-<!ATTLIST bean
-    type CDATA #IMPLIED
-    name CDATA #IMPLIED
-    class CDATA #REQUIRED
-    scope CDATA #IMPLIED
-    static CDATA #IMPLIED
-    optional CDATA #IMPLIED
->
-
-<!ELEMENT constant (#PCDATA)>
-<!ATTLIST constant
-    name CDATA #REQUIRED
-    value CDATA #REQUIRED
->
-
-<!ELEMENT unknown-handler-stack (unknown-handler-ref*)>
-<!ELEMENT unknown-handler-ref (#PCDATA)>
-<!ATTLIST unknown-handler-ref
-    name CDATA #REQUIRED
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-2.6.dtd b/core/src/main/resources/xwork-2.6.dtd
deleted file mode 100644
index ba6dddf..0000000
--- a/core/src/main/resources/xwork-2.6.dtd
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<!-- START SNIPPET: xworkDtd -->
-
-<!--
-   XWork configuration DTD.
-   Use the following DOCTYPE
-
-   <!DOCTYPE xwork PUBLIC
-	"-//Apache Struts//XWork 2.6//EN"
-	"http://struts.apache.org/dtds/xwork-2.6.dtd">
--->
-
-<!ELEMENT xwork ((package|include|bean|constant)*, bean-selection?, unknown-handler-stack?)>
-<!ATTLIST xwork
-    order CDATA #IMPLIED
->
-
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-allowed-methods?, global-exception-mappings?, action*)>
-<!ATTLIST package
-    name CDATA #REQUIRED
-    extends CDATA #IMPLIED
-    namespace CDATA #IMPLIED
-    abstract CDATA #IMPLIED
-    strict-method-invocation (true|false) "true"
->
-
-<!ELEMENT result-types (result-type+)>
-
-<!ELEMENT result-type (param*)>
-<!ATTLIST result-type
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
-    default (true|false) "false"
->
-
-<!ELEMENT interceptors (interceptor|interceptor-stack)+>
-
-<!ELEMENT interceptor (param*)>
-<!ATTLIST interceptor
-    name CDATA #REQUIRED
-    class CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-stack (interceptor-ref*)>
-<!ATTLIST interceptor-stack
-    name CDATA #REQUIRED
->
-
-<!ELEMENT interceptor-ref (param*)>
-<!ATTLIST interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-interceptor-ref (#PCDATA)>
-<!ATTLIST default-interceptor-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-action-ref (#PCDATA)>
-<!ATTLIST default-action-ref
-    name CDATA #REQUIRED
->
-
-<!ELEMENT default-class-ref (#PCDATA)>
-<!ATTLIST default-class-ref
-   class CDATA #REQUIRED
->
-
-<!ELEMENT global-results (result+)>
-
-<!ELEMENT global-allowed-methods (#PCDATA)>
-
-<!ELEMENT global-exception-mappings (exception-mapping+)>
-
-<!ELEMENT action ((param|result|interceptor-ref|exception-mapping)*,allowed-methods?)>
-<!ATTLIST action
-    name CDATA #REQUIRED
-    class CDATA #IMPLIED
-    method CDATA #IMPLIED
-    converter CDATA #IMPLIED
->
-
-<!ELEMENT param (#PCDATA)>
-<!ATTLIST param
-    name CDATA #REQUIRED
->
-
-<!ELEMENT result (#PCDATA|param)*>
-<!ATTLIST result
-    name CDATA #IMPLIED
-    type CDATA #IMPLIED
->
-
-<!ELEMENT exception-mapping (#PCDATA|param)*>
-<!ATTLIST exception-mapping
-    name CDATA #IMPLIED
-    exception CDATA #REQUIRED
-    result CDATA #REQUIRED
->
-
-<!ELEMENT allowed-methods (#PCDATA)>
-
-<!ELEMENT include (#PCDATA)>
-<!ATTLIST include
-    file CDATA #REQUIRED
->
-
-<!ELEMENT bean (#PCDATA)>
-<!ATTLIST bean
-    type CDATA #IMPLIED
-    name CDATA #IMPLIED
-    class CDATA #REQUIRED
-    scope CDATA #IMPLIED
-    static CDATA #IMPLIED
-    optional CDATA #IMPLIED
->
-
-<!ELEMENT bean-selection (#PCDATA)>
-<!ATTLIST bean-selection
-    name CDATA #IMPLIED
-    class CDATA #IMPLIED
->
-
-<!ELEMENT constant (#PCDATA)>
-<!ATTLIST constant
-    name CDATA #REQUIRED
-    value CDATA #REQUIRED
->
-
-<!ELEMENT unknown-handler-stack (unknown-handler-ref*)>
-<!ELEMENT unknown-handler-ref (#PCDATA)>
-<!ATTLIST unknown-handler-ref
-    name CDATA #REQUIRED
->
-
-<!-- END SNIPPET: xworkDtd -->
-
diff --git a/core/src/main/resources/xwork-default.xml b/core/src/main/resources/xwork-default.xml
index 9e7f68d..fcdcb5f 100644
--- a/core/src/main/resources/xwork-default.xml
+++ b/core/src/main/resources/xwork-default.xml
@@ -19,11 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 2.0//EN"
-        "http://struts.apache.org/dtds/xwork-2.0.dtd">
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="xwork-default" abstract="true">
 
         <!-- START SNIPPET: xwork2-default-result-types -->
@@ -84,4 +83,4 @@
         <default-class-ref class="com.opensymphony.xwork2.ActionSupport"/>
 
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/java/com/opensymphony/xwork2/ActionInvocationTest.java b/core/src/test/java/com/opensymphony/xwork2/ActionInvocationTest.java
index ce93c3f..e0f13c4 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ActionInvocationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ActionInvocationTest.java
@@ -20,9 +20,10 @@
 
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
-import org.apache.struts2.StrutsException;
-import org.apache.struts2.dispatcher.HttpParameters;
 import com.opensymphony.xwork2.mock.MockResult;
+import org.apache.struts2.StrutsException;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
+import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
 
@@ -34,38 +35,40 @@
 
     public void testCommandInvocation() throws Exception {
         ActionProxy baseActionProxy = actionProxyFactory.createActionProxy(
-                "baz", "commandTest", null, null);
+            "baz", "commandTest", null, null);
         assertEquals("success", baseActionProxy.execute());
 
         ActionProxy commandActionProxy = actionProxyFactory.createActionProxy(
-                "baz", "myCommand", null, null);
+            "baz", "myCommand", null, null);
         assertEquals(SimpleAction.COMMAND_RETURN_CODE, commandActionProxy.execute());
     }
 
     public void testCommandInvocationDoMethod() throws Exception {
         ActionProxy baseActionProxy = actionProxyFactory.createActionProxy(
-                "baz", "doMethodTest", null, null);
+            "baz", "doMethodTest", null, null);
         assertEquals("input", baseActionProxy.execute());
     }
 
     public void testCommandInvocationUnknownHandler() throws Exception {
 
         UnknownHandler unknownHandler = new UnknownHandler() {
-			public ActionConfig handleUnknownAction(String namespace, String actionName) throws StrutsException {
+            public ActionConfig handleUnknownAction(String namespace, String actionName) throws StrutsException {
                 return new ActionConfig.Builder("test", actionName, ActionSupport.class.getName())
-                        .addAllowedMethod("unknownmethod")
-                        .build();
+                    .addAllowedMethod("unknownmethod")
+                    .build();
             }
-			public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws StrutsException {
-				return new MockResult();
-			}
-			public Object handleUnknownActionMethod(Object action, String methodName) {
-				if (methodName.equals("unknownmethod")) {
-					return "found";
-				} else {
-					return null;
-				}
-			}
+
+            public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws StrutsException {
+                return new MockResult();
+            }
+
+            public Object handleUnknownActionMethod(Object action, String methodName) {
+                if (methodName.equals("unknownmethod")) {
+                    return "found";
+                } else {
+                    return null;
+                }
+            }
         };
 
         UnknownHandlerManagerMock uhm = new UnknownHandlerManagerMock();
@@ -74,16 +77,16 @@
         loadButAdd(UnknownHandlerManager.class, uhm);
 
         DefaultActionProxy baseActionProxy = (DefaultActionProxy) actionProxyFactory.createActionProxy(
-                "baz", "unknownMethodTest", "unknownmethod", null);
+            "baz", "unknownMethodTest", "unknownmethod", null);
 
-        ((DefaultActionInvocation)baseActionProxy.getInvocation()).setUnknownHandlerManager(uhm);
+        ((DefaultActionInvocation) baseActionProxy.getInvocation()).setUnknownHandlerManager(uhm);
 
         assertEquals("found", baseActionProxy.execute());
     }
 
     public void testResultReturnInvocationAndWired() throws Exception {
         ActionProxy baseActionProxy = actionProxyFactory.createActionProxy(
-                "baz", "resultAction", null, null);
+            "baz", "resultAction", null, null);
         assertNull(baseActionProxy.execute());
         assertTrue(SimpleAction.resultCalled);
     }
@@ -96,7 +99,7 @@
         extraContext.put(ActionContext.PARAMETERS, HttpParameters.create(params).build());
 
         try {
-            ActionProxy proxy = actionProxyFactory.createActionProxy( "", "Foo", null, extraContext);
+            ActionProxy proxy = actionProxyFactory.createActionProxy("", "Foo", null, extraContext);
             proxy.execute();
             assertEquals("this is blah", proxy.getInvocation().getStack().findValue("[1].blah"));
         } catch (Exception e) {
@@ -105,11 +108,12 @@
         }
     }
 
-    @Override protected void setUp() throws Exception {
+    @Override
+    protected void setUp() throws Exception {
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider);
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/ChainResultTest.java b/core/src/test/java/com/opensymphony/xwork2/ChainResultTest.java
index f806caf..84fa0af 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ChainResultTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ChainResultTest.java
@@ -23,6 +23,7 @@
 import com.opensymphony.xwork2.util.ValueStack;
 import junit.framework.TestCase;
 import org.apache.struts2.StrutsException;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -38,7 +39,7 @@
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider);
     }
@@ -124,9 +125,9 @@
     }
 
     private class NamespaceActionNameTestActionProxyFactory implements ActionProxyFactory {
-        private ActionProxy returnVal;
-        private String expectedActionName;
-        private String expectedNamespace;
+        private final ActionProxy returnVal;
+        private final String expectedActionName;
+        private final String expectedNamespace;
 
         NamespaceActionNameTestActionProxyFactory(String expectedNamespace, String expectedActionName, ActionProxy returnVal) {
             this.expectedNamespace = expectedNamespace;
@@ -156,14 +157,14 @@
         }
 
         public ActionProxy createActionProxy(String namespace, String actionName, String methodName, Map<String, Object> extraContext, boolean executeResult, boolean cleanupContext) {
-             TestCase.assertEquals(expectedNamespace, namespace);
+            TestCase.assertEquals(expectedNamespace, namespace);
             TestCase.assertEquals(expectedActionName, actionName);
 
             return returnVal;
         }
 
         public ActionProxy createActionProxy(ActionInvocation actionInvocation, String namespace, String actionName, String methodName, boolean executeResult, boolean cleanupContext) {
-             TestCase.assertEquals(expectedNamespace, namespace);
+            TestCase.assertEquals(expectedNamespace, namespace);
             TestCase.assertEquals(expectedActionName, actionName);
 
             return returnVal;
@@ -177,7 +178,7 @@
         }
 
         public ActionProxy createActionProxy(ActionInvocation inv, String namespace, String actionName,
-                Map<String, Object> extraContext, boolean executeResult, boolean cleanupContext) throws Exception {
+                                             Map<String, Object> extraContext, boolean executeResult, boolean cleanupContext) throws Exception {
             return null;
         }
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java b/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
index fc5e2c2..a0d53c9 100644
--- a/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
@@ -29,6 +29,7 @@
 import com.opensymphony.xwork2.ognl.OgnlUtil;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.ArrayList;
@@ -304,7 +305,7 @@
         DefaultActionInvocation defaultActionInvocation = new DefaultActionInvocation(extraContext, true);
         container.inject(defaultActionInvocation);
 
-        ActionProxy actionProxy = actionProxyFactory.createActionProxy( "", "LazyFoo", null, extraContext);
+        ActionProxy actionProxy = actionProxyFactory.createActionProxy("", "LazyFoo", null, extraContext);
         defaultActionInvocation.init(actionProxy);
         defaultActionInvocation.invoke();
 
@@ -322,6 +323,7 @@
         lock.acquire();
         dai.setAsyncManager(new AsyncManager() {
             Object asyncActionResult;
+
             @Override
             public boolean hasAsyncActionResult() {
                 return asyncActionResult != null;
@@ -384,7 +386,7 @@
         assertFalse("invocation should not be executed", dai.executed);
         assertNull("a null result should be passed to upper and wait for the async result", dai.resultCode);
 
-        if(lock.tryAcquire(1500L, TimeUnit.MILLISECONDS)) {
+        if (lock.tryAcquire(1500L, TimeUnit.MILLISECONDS)) {
             try {
                 dai.invoke();
                 assertTrue("preResultListener should be executed", preResultExecuted[0]);
@@ -402,7 +404,7 @@
 
     public void testActionEventListener() throws Exception {
         ActionProxy actionProxy = actionProxyFactory.createActionProxy("",
-                "ExceptionFoo", "exceptionMethod", new HashMap<String, Object>());
+            "ExceptionFoo", "exceptionMethod", new HashMap<String, Object>());
         DefaultActionInvocation defaultActionInvocation = (DefaultActionInvocation) actionProxy.getInvocation();
 
         SimpleActionEventListener actionEventListener = new SimpleActionEventListener("prepared", "exceptionHandled");
@@ -428,7 +430,7 @@
 
     public void testActionChainResult() throws Exception {
         ActionProxy actionProxy = actionProxyFactory.createActionProxy("", "Foo", null,
-                new HashMap<String, Object>());
+            new HashMap<String, Object>());
         DefaultActionInvocation defaultActionInvocation = (DefaultActionInvocation) actionProxy.getInvocation();
         defaultActionInvocation.init(actionProxy);
 
@@ -446,7 +448,7 @@
 
     public void testNoResultDefined() throws Exception {
         ActionProxy actionProxy = actionProxyFactory.createActionProxy("", "Foo", null,
-                new HashMap<String, Object>());
+            new HashMap<String, Object>());
         DefaultActionInvocation defaultActionInvocation = (DefaultActionInvocation) actionProxy.getInvocation();
         defaultActionInvocation.init(actionProxy);
 
@@ -459,7 +461,7 @@
 
     public void testNullResultPossible() throws Exception {
         ActionProxy actionProxy = actionProxyFactory.createActionProxy("",
-                "NullFoo", "nullMethod", new HashMap<String, Object>());
+            "NullFoo", "nullMethod", new HashMap<String, Object>());
         DefaultActionInvocation defaultActionInvocation = (DefaultActionInvocation) actionProxy.getInvocation();
         defaultActionInvocation.init(actionProxy);
 
@@ -473,7 +475,7 @@
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider);
     }
@@ -481,8 +483,8 @@
 
     private class SimpleActionEventListener implements ActionEventListener {
 
-        private String name;
-        private String result;
+        private final String name;
+        private final String result;
 
         SimpleActionEventListener(String name, String result) {
 
@@ -492,7 +494,7 @@
 
         @Override
         public Object prepare(Object action, ValueStack stack) {
-            ((SimpleAction)action).setName(name);
+            ((SimpleAction) action).setName(name);
             return action;
         }
 
diff --git a/core/src/test/java/com/opensymphony/xwork2/DefaultActionProxyTest.java b/core/src/test/java/com/opensymphony/xwork2/DefaultActionProxyTest.java
index c305997..125c5b4 100644
--- a/core/src/test/java/com/opensymphony/xwork2/DefaultActionProxyTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/DefaultActionProxyTest.java
@@ -18,9 +18,9 @@
  */
 package com.opensymphony.xwork2;
 
-import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
 import org.apache.struts2.StrutsInternalTestCase;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.junit.Test;
 
 public class DefaultActionProxyTest extends StrutsInternalTestCase {
@@ -28,7 +28,7 @@
     @Test
     public void testThorwExceptionOnNotAllowedMethod() throws Exception {
         final String filename = "com/opensymphony/xwork2/config/providers/xwork-test-allowed-methods.xml";
-        loadConfigurationProviders(new XmlConfigurationProvider(filename));
+        loadConfigurationProviders(new StrutsXmlConfigurationProvider(filename));
         DefaultActionProxy dap = new DefaultActionProxy(new MockActionInvocation(), "strict", "Default", "notAllowed", true, true);
         container.inject(dap);
 
diff --git a/core/src/test/java/com/opensymphony/xwork2/DefaultClasstTest.java b/core/src/test/java/com/opensymphony/xwork2/DefaultClasstTest.java
index 1472fff..a8d6e73 100644
--- a/core/src/test/java/com/opensymphony/xwork2/DefaultClasstTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/DefaultClasstTest.java
@@ -19,6 +19,7 @@
 package com.opensymphony.xwork2;
 
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 /**
  * <code>WildCardResultTest</code>
@@ -33,7 +34,7 @@
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider);
     }
@@ -41,20 +42,20 @@
     public void testWildCardEvaluation() throws Exception {
         ActionProxy proxy = actionProxyFactory.createActionProxy("Abstract-crud", "edit", null, null);
         assertEquals("com.opensymphony.xwork2.SimpleAction", proxy.getConfig().getClassName());
-        
+
         proxy = actionProxyFactory.createActionProxy("/example", "edit", null, null);
         assertEquals("com.opensymphony.xwork2.ModelDrivenAction", proxy.getConfig().getClassName());
-         
+
 
         proxy = actionProxyFactory.createActionProxy("/example2", "override", null, null);
         assertEquals("com.opensymphony.xwork2.ModelDrivenAction", proxy.getConfig().getClassName());
-        
+
         proxy = actionProxyFactory.createActionProxy("/example2/subItem", "save", null, null);
         assertEquals("com.opensymphony.xwork2.ModelDrivenAction", proxy.getConfig().getClassName());
-        
+
         proxy = actionProxyFactory.createActionProxy("/example2", "list", null, null);
         assertEquals("com.opensymphony.xwork2.ModelDrivenAction", proxy.getConfig().getClassName());
-        
+
         proxy = actionProxyFactory.createActionProxy("/example3", "list", null, null);
         assertEquals("com.opensymphony.xwork2.SimpleAction", proxy.getConfig().getClassName());
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/LocaleAwareTest.java b/core/src/test/java/com/opensymphony/xwork2/LocaleAwareTest.java
index f7c9506..bb77cab 100644
--- a/core/src/test/java/com/opensymphony/xwork2/LocaleAwareTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/LocaleAwareTest.java
@@ -22,6 +22,7 @@
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.Locale;
 
@@ -30,7 +31,7 @@
  * LocaleAwareTest
  *
  * @author Jason Carreira
- *         Created Feb 10, 2003 6:13:13 PM
+ * Created Feb 10, 2003 6:13:13 PM
  */
 public class LocaleAwareTest extends XWorkTestCase {
 
@@ -63,7 +64,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider, new MockConfigurationProvider());
 
diff --git a/core/src/test/java/com/opensymphony/xwork2/ProxyInvocationTest.java b/core/src/test/java/com/opensymphony/xwork2/ProxyInvocationTest.java
index 794e1cd..3c962a4 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ProxyInvocationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ProxyInvocationTest.java
@@ -19,6 +19,7 @@
 package com.opensymphony.xwork2;
 
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -31,22 +32,22 @@
     /**
      * Sets a ProxyObjectFactory as ObjectFactory (so the FooAction will always be retrieved
      * as a FooProxy), and it tries to call invokeAction on the TestActionInvocation.
-     * 
-     * It should fail, because the Method got from the action (actually a FooProxy) 
-     * will be executed on the InvocationHandler of the action (so, in the action itself). 
+     * <p>
+     * It should fail, because the Method got from the action (actually a FooProxy)
+     * will be executed on the InvocationHandler of the action (so, in the action itself).
      */
     public void testProxyInvocation() throws Exception {
 
         ActionProxy proxy = actionProxyFactory
             .createActionProxy("", "ProxyInvocation", null, createDummyContext());
         ActionInvocation invocation = proxy.getInvocation();
-        
+
         String result = invocation.invokeActionOnly();
         assertEquals("proxyResult", result);
 
     }
 
-    /** 
+    /**
      * Needed for the creation of the action proxy
      */
     private Map<String, Object> createDummyContext() {
@@ -62,7 +63,7 @@
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("xwork-proxyinvoke.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("xwork-proxyinvoke.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider);
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/WildCardResultTest.java b/core/src/test/java/com/opensymphony/xwork2/WildCardResultTest.java
index 08b4c39..008b5cc 100644
--- a/core/src/test/java/com/opensymphony/xwork2/WildCardResultTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/WildCardResultTest.java
@@ -20,6 +20,7 @@
 
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.mock.MockResult;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 /**
  * <code>WildCardResultTest</code>
@@ -34,7 +35,7 @@
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider);
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationManagerTest.java b/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationManagerTest.java
index 864f790..307cd3b 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationManagerTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationManagerTest.java
@@ -22,7 +22,7 @@
 import com.mockobjects.dynamic.Mock;
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider;
+import com.opensymphony.xwork2.config.providers.StrutsDefaultConfigurationProvider;
 import com.opensymphony.xwork2.conversion.TypeConverterHolder;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.ContainerBuilder;
@@ -168,7 +168,7 @@
         configProviderMock.matchAndReturn("equals", C.ANY_ARGS, false);
 
         ConfigurationProvider mockProvider = (ConfigurationProvider) configProviderMock.proxy();
-        configurationManager.addContainerProvider(new XWorkConfigurationProvider());
+        configurationManager.addContainerProvider(new StrutsDefaultConfigurationProvider());
         configurationManager.addContainerProvider(mockProvider);
 
         //the first time it always inits
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationTest.java b/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationTest.java
index ee2e394..7d46932 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/ConfigurationTest.java
@@ -31,6 +31,7 @@
 import com.opensymphony.xwork2.mock.MockInterceptor;
 import com.opensymphony.xwork2.test.StubConfigurationProvider;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
@@ -86,20 +87,20 @@
         // check inheritance from Default
         assertNotNull(configuration.getActionConfig("includeTest", "Foo"));
     }
-    
+
     public void testWildcardName() {
         RuntimeConfiguration configuration = configurationManager.getConfiguration().getRuntimeConfiguration();
 
         ActionConfig config = configuration.getActionConfig("", "WildCard/Simple/input");
-        
+
         assertNotNull(config);
-        assertTrue("Wrong class name, "+config.getClassName(), 
-                "com.opensymphony.xwork2.SimpleAction".equals(config.getClassName()));
+        assertTrue("Wrong class name, " + config.getClassName(),
+            "com.opensymphony.xwork2.SimpleAction".equals(config.getClassName()));
         assertTrue("Wrong method name", "input".equals(config.getMethodName()));
-        
+
         Map<String, String> p = config.getParams();
-        assertTrue("Wrong parameter, "+p.get("foo"), "Simple".equals(p.get("foo")));
-        assertTrue("Wrong parameter, "+p.get("bar"), "input".equals(p.get("bar")));
+        assertTrue("Wrong parameter, " + p.get("foo"), "Simple".equals(p.get("foo")));
+        assertTrue("Wrong parameter, " + p.get("bar"), "input".equals(p.get("bar")));
     }
 
     public void testWildcardNamespace() {
@@ -108,12 +109,12 @@
         ActionConfig config = configuration.getActionConfig("/animals/dog", "commandTest");
 
         assertNotNull(config);
-        assertTrue("Wrong class name, "+config.getClassName(),
-                "com.opensymphony.xwork2.SimpleAction".equals(config.getClassName()));
+        assertTrue("Wrong class name, " + config.getClassName(),
+            "com.opensymphony.xwork2.SimpleAction".equals(config.getClassName()));
 
         Map<String, String> p = config.getParams();
-        assertTrue("Wrong parameter, "+p.get("0"), "/animals/dog".equals(p.get("0")));
-        assertTrue("Wrong parameter, "+p.get("1"), "dog".equals(p.get("1")));
+        assertTrue("Wrong parameter, " + p.get("0"), "/animals/dog".equals(p.get("0")));
+        assertTrue("Wrong parameter, " + p.get("1"), "dog".equals(p.get("1")));
     }
 
     public void testGlobalResults() {
@@ -204,11 +205,11 @@
         // check that it has configuration from MockConfigurationProvider
         assertNotNull(configuration.getActionConfig("", MockConfigurationProvider.FOO_ACTION_NAME));
     }
-    
+
     public void testMultipleContainerProviders() throws Exception {
         // to start from scratch
         configurationManager.destroyConfiguration();
-         // to build basic configuration
+        // to build basic configuration
         configurationManager.getConfiguration();
 
         Mock mockContainerProvider = new Mock(ContainerProvider.class);
@@ -220,7 +221,7 @@
         mockContainerProvider.expectAndReturn("needsReload", true);
         // the order of providers must be changed as just first is checked if reload is needed
         configurationManager.addContainerProvider((ContainerProvider) mockContainerProvider.proxy());
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(provider);
         configurationManager.addContainerProvider(provider);
 
@@ -231,7 +232,7 @@
             e.printStackTrace();
             fail();
         }
-        
+
         RuntimeConfiguration configuration = config.getRuntimeConfiguration();
 
         // check that it has configuration from xml
@@ -239,24 +240,25 @@
 
         mockContainerProvider.verify();
     }
-    
+
     public void testInitForPackageProviders() {
-        
+
         loadConfigurationProviders(new StubConfigurationProvider() {
             @Override
             public void register(ContainerBuilder builder,
-                    LocatableProperties props) throws ConfigurationException {
+                                 LocatableProperties props) throws ConfigurationException {
                 builder.factory(PackageProvider.class, "foo", MyPackageProvider.class);
             }
         });
-        
+
         assertEquals(configuration, MyPackageProvider.getConfiguration());
     }
-    
+
     public void testInitOnceForConfigurationProviders() {
-        
+
         loadConfigurationProviders(new StubConfigurationProvider() {
             boolean called = false;
+
             @Override
             public void init(Configuration config) {
                 if (called) {
@@ -264,7 +266,7 @@
                 }
                 called = true;
             }
-            
+
             @Override
             public void loadPackages() {
                 if (!called) {
@@ -300,30 +302,36 @@
             fail();
         }
     }
-    
+
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
     }
 
     public static class MyPackageProvider implements PackageProvider {
         static Configuration config;
-        public void loadPackages() throws ConfigurationException {}
-        public boolean needsReload() { return config != null; }
-        
+
+        public void loadPackages() throws ConfigurationException {
+        }
+
+        public boolean needsReload() {
+            return config != null;
+        }
+
         public static Configuration getConfiguration() {
             return config;
         }
+
         public void init(Configuration configuration)
-                throws ConfigurationException {
+            throws ConfigurationException {
             config = configuration;
         }
-        
+
     }
 }
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/ConfigurationTestBase.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/ConfigurationTestBase.java
index a344a42..c073071 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/ConfigurationTestBase.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/ConfigurationTestBase.java
@@ -21,21 +21,22 @@
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
 import com.opensymphony.xwork2.config.impl.MockConfiguration;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 /**
  * ConfigurationTestBase
  *
  * @author Jason Carreira
- *         Created Jun 9, 2003 7:42:12 AM
+ * Created Jun 9, 2003 7:42:12 AM
  */
 public abstract class ConfigurationTestBase extends XWorkTestCase {
 
     protected ConfigurationProvider buildConfigurationProvider(final String filename) {
         configuration = new MockConfiguration();
-        ((MockConfiguration)configuration).selfRegister();
+        ((MockConfiguration) configuration).selfRegister();
         container = configuration.getContainer();
 
-        XmlConfigurationProvider prov = new XmlConfigurationProvider(filename, true);
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider(filename);
         container.inject(prov);
         prov.init(configuration);
         prov.loadPackages();
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderGlobalResultInheritenceTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderGlobalResultInheritenceTest.java
index a40c714..a5c12f3 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderGlobalResultInheritenceTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderGlobalResultInheritenceTest.java
@@ -39,7 +39,7 @@
         ConfigurationProvider provider = buildConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-global-result-inheritence.xml");
 
         ConfigurationManager configurationManager = new ConfigurationManager(Container.DEFAULT_NAME);
-        configurationManager.addContainerProvider(new XWorkConfigurationProvider());
+        configurationManager.addContainerProvider(new StrutsDefaultConfigurationProvider());
         configurationManager.addContainerProvider(provider);
         Configuration configuration = configurationManager.getConfiguration();
 
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java
index 9ba307d..aab4a50 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorParamOverridingTest.java
@@ -19,7 +19,6 @@
 package com.opensymphony.xwork2.config.providers;
 
 import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.config.ConfigurationProvider;
 import com.opensymphony.xwork2.config.ContainerProvider;
 import com.opensymphony.xwork2.config.RuntimeConfiguration;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
@@ -27,6 +26,7 @@
 import com.opensymphony.xwork2.config.impl.DefaultConfiguration;
 import com.opensymphony.xwork2.util.fs.DefaultFileManager;
 import com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -39,14 +39,14 @@
 
     public void testInterceptorParamOveriding() throws Exception {
         DefaultConfiguration conf = new DefaultConfiguration();
-        final XmlConfigurationProvider p = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-interceptor-param-overriding.xml");
+        final XmlConfigurationProvider p = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-interceptor-param-overriding.xml");
         DefaultFileManagerFactory factory = new DefaultFileManagerFactory();
         factory.setContainer(container);
         factory.setFileManager(new DefaultFileManager());
         p.setFileManagerFactory(factory);
         conf.reloadContainer(new ArrayList<ContainerProvider>() {
             {
-                add(new XWorkConfigurationProvider());
+                add(new StrutsDefaultConfigurationProvider());
                 add(p);
             }
         });
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java
index d75d190..e629d44 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorStackParamOverridingTest.java
@@ -19,7 +19,6 @@
 package com.opensymphony.xwork2.config.providers;
 
 import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.config.ConfigurationProvider;
 import com.opensymphony.xwork2.config.ContainerProvider;
 import com.opensymphony.xwork2.config.RuntimeConfiguration;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
@@ -27,6 +26,7 @@
 import com.opensymphony.xwork2.config.impl.DefaultConfiguration;
 import com.opensymphony.xwork2.util.fs.DefaultFileManager;
 import com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -38,71 +38,71 @@
  * @version $Id$
  */
 public class XmlConfigurationProviderInterceptorStackParamOverridingTest extends XWorkTestCase {
-    
+
     public void testInterceptorStackParamOveriding() throws Exception {
-    	DefaultConfiguration conf = new DefaultConfiguration();
-    	final XmlConfigurationProvider p = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-interceptor-stack-param-overriding.xml");
+        DefaultConfiguration conf = new DefaultConfiguration();
+        final XmlConfigurationProvider p = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-interceptor-stack-param-overriding.xml");
         DefaultFileManagerFactory factory = new DefaultFileManagerFactory();
         factory.setContainer(container);
         factory.setFileManager(new DefaultFileManager());
         p.setFileManagerFactory(factory);
-    	configurationManager.addContainerProvider(p);
+        configurationManager.addContainerProvider(p);
         conf.reloadContainer(new ArrayList<ContainerProvider>() {
-			{
-				add(new XWorkConfigurationProvider());
-				add(p);
-			}
-		});
+            {
+                add(new StrutsDefaultConfigurationProvider());
+                add(p);
+            }
+        });
 
 
-    	RuntimeConfiguration rtConf = conf.getRuntimeConfiguration();
+        RuntimeConfiguration rtConf = conf.getRuntimeConfiguration();
 
-    	ActionConfig actionOne = rtConf.getActionConfig("", "actionOne");
-    	ActionConfig actionTwo = rtConf.getActionConfig("", "actionTwo");
+        ActionConfig actionOne = rtConf.getActionConfig("", "actionOne");
+        ActionConfig actionTwo = rtConf.getActionConfig("", "actionTwo");
 
-    	List actionOneInterceptors = actionOne.getInterceptors();
-    	List actionTwoInterceptors = actionTwo.getInterceptors();
+        List actionOneInterceptors = actionOne.getInterceptors();
+        List actionTwoInterceptors = actionTwo.getInterceptors();
 
-    	assertNotNull(actionOne);
-    	assertNotNull(actionTwo);
-    	assertNotNull(actionOneInterceptors);
-    	assertNotNull(actionTwoInterceptors);
-    	assertEquals(actionOneInterceptors.size(), 3);
-    	assertEquals(actionTwoInterceptors.size(), 3);
+        assertNotNull(actionOne);
+        assertNotNull(actionTwo);
+        assertNotNull(actionOneInterceptors);
+        assertNotNull(actionTwoInterceptors);
+        assertEquals(actionOneInterceptors.size(), 3);
+        assertEquals(actionTwoInterceptors.size(), 3);
 
-    	InterceptorMapping actionOneInterceptorMapping1 = (InterceptorMapping) actionOneInterceptors.get(0);
-    	InterceptorMapping actionOneInterceptorMapping2 = (InterceptorMapping) actionOneInterceptors.get(1);
-    	InterceptorMapping actionOneInterceptorMapping3 = (InterceptorMapping) actionOneInterceptors.get(2);
-    	InterceptorMapping actionTwoInterceptorMapping1 = (InterceptorMapping) actionTwoInterceptors.get(0);
-    	InterceptorMapping actionTwoInterceptorMapping2 = (InterceptorMapping) actionTwoInterceptors.get(1);
-    	InterceptorMapping actionTwoInterceptorMapping3 = (InterceptorMapping) actionTwoInterceptors.get(2);
+        InterceptorMapping actionOneInterceptorMapping1 = (InterceptorMapping) actionOneInterceptors.get(0);
+        InterceptorMapping actionOneInterceptorMapping2 = (InterceptorMapping) actionOneInterceptors.get(1);
+        InterceptorMapping actionOneInterceptorMapping3 = (InterceptorMapping) actionOneInterceptors.get(2);
+        InterceptorMapping actionTwoInterceptorMapping1 = (InterceptorMapping) actionTwoInterceptors.get(0);
+        InterceptorMapping actionTwoInterceptorMapping2 = (InterceptorMapping) actionTwoInterceptors.get(1);
+        InterceptorMapping actionTwoInterceptorMapping3 = (InterceptorMapping) actionTwoInterceptors.get(2);
 
-    	assertNotNull(actionOneInterceptorMapping1);
-    	assertNotNull(actionOneInterceptorMapping2);
-    	assertNotNull(actionOneInterceptorMapping3);
-    	assertNotNull(actionTwoInterceptorMapping1);
-    	assertNotNull(actionTwoInterceptorMapping2);
-    	assertNotNull(actionTwoInterceptorMapping3);
+        assertNotNull(actionOneInterceptorMapping1);
+        assertNotNull(actionOneInterceptorMapping2);
+        assertNotNull(actionOneInterceptorMapping3);
+        assertNotNull(actionTwoInterceptorMapping1);
+        assertNotNull(actionTwoInterceptorMapping2);
+        assertNotNull(actionTwoInterceptorMapping3);
 
 
-    	assertEquals(((InterceptorForTestPurpose)actionOneInterceptorMapping1.getInterceptor()).getParamOne(), "i1p1");
-		assertEquals(((InterceptorForTestPurpose)actionOneInterceptorMapping1.getInterceptor()).getParamTwo(), "i1p2");
-		assertEquals(((InterceptorForTestPurpose)actionOneInterceptorMapping2.getInterceptor()).getParamOne(), "i2p1");
-		assertEquals(((InterceptorForTestPurpose)actionOneInterceptorMapping2.getInterceptor()).getParamTwo(), null);
-		assertEquals(((InterceptorForTestPurpose)actionOneInterceptorMapping3.getInterceptor()).getParamOne(), null);
-		assertEquals(((InterceptorForTestPurpose)actionOneInterceptorMapping3.getInterceptor()).getParamTwo(), null);
+        assertEquals(((InterceptorForTestPurpose) actionOneInterceptorMapping1.getInterceptor()).getParamOne(), "i1p1");
+        assertEquals(((InterceptorForTestPurpose) actionOneInterceptorMapping1.getInterceptor()).getParamTwo(), "i1p2");
+        assertEquals(((InterceptorForTestPurpose) actionOneInterceptorMapping2.getInterceptor()).getParamOne(), "i2p1");
+        assertEquals(((InterceptorForTestPurpose) actionOneInterceptorMapping2.getInterceptor()).getParamTwo(), null);
+        assertEquals(((InterceptorForTestPurpose) actionOneInterceptorMapping3.getInterceptor()).getParamOne(), null);
+        assertEquals(((InterceptorForTestPurpose) actionOneInterceptorMapping3.getInterceptor()).getParamTwo(), null);
 
-    	assertEquals(((InterceptorForTestPurpose)actionTwoInterceptorMapping1.getInterceptor()).getParamOne(), null);
-		assertEquals(((InterceptorForTestPurpose)actionTwoInterceptorMapping1.getInterceptor()).getParamTwo(), null);
-		assertEquals(((InterceptorForTestPurpose)actionTwoInterceptorMapping2.getInterceptor()).getParamOne(), null);
-		assertEquals(((InterceptorForTestPurpose)actionTwoInterceptorMapping2.getInterceptor()).getParamTwo(), "i2p2");
-		assertEquals(((InterceptorForTestPurpose)actionTwoInterceptorMapping3.getInterceptor()).getParamOne(), "i3p1");
-		assertEquals(((InterceptorForTestPurpose)actionTwoInterceptorMapping3.getInterceptor()).getParamTwo(), "i3p2");
+        assertEquals(((InterceptorForTestPurpose) actionTwoInterceptorMapping1.getInterceptor()).getParamOne(), null);
+        assertEquals(((InterceptorForTestPurpose) actionTwoInterceptorMapping1.getInterceptor()).getParamTwo(), null);
+        assertEquals(((InterceptorForTestPurpose) actionTwoInterceptorMapping2.getInterceptor()).getParamOne(), null);
+        assertEquals(((InterceptorForTestPurpose) actionTwoInterceptorMapping2.getInterceptor()).getParamTwo(), "i2p2");
+        assertEquals(((InterceptorForTestPurpose) actionTwoInterceptorMapping3.getInterceptor()).getParamOne(), "i3p1");
+        assertEquals(((InterceptorForTestPurpose) actionTwoInterceptorMapping3.getInterceptor()).getParamTwo(), "i3p2");
 
     }
 
     @Override
     protected void tearDown() throws Exception {
-    	configurationManager.clearContainerProviders();
+        configurationManager.clearContainerProviders();
     }
 }
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java
index 70bfe23..fd52d2f 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java
@@ -23,9 +23,14 @@
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
 import com.opensymphony.xwork2.config.RuntimeConfiguration;
-import com.opensymphony.xwork2.config.entities.*;
+import com.opensymphony.xwork2.config.entities.ActionConfig;
+import com.opensymphony.xwork2.config.entities.InterceptorConfig;
+import com.opensymphony.xwork2.config.entities.InterceptorMapping;
+import com.opensymphony.xwork2.config.entities.InterceptorStackConfig;
+import com.opensymphony.xwork2.config.entities.PackageConfig;
 import com.opensymphony.xwork2.interceptor.LoggingInterceptor;
 import com.opensymphony.xwork2.mock.MockInterceptor;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.interceptor.NoOpInterceptor;
 
 import java.util.ArrayList;
@@ -46,7 +51,7 @@
     InterceptorConfig mockInterceptor = new InterceptorConfig.Builder("mock", MockInterceptor.class.getName()).build();
     InterceptorConfig noopInterceptor = new InterceptorConfig.Builder("noop", NoOpInterceptor.class.getName()).build();
     ObjectFactory objectFactory;
-    
+
     @Override
     public void setUp() throws Exception {
         super.setUp();
@@ -68,16 +73,16 @@
 
         // the default interceptor stack
         InterceptorStackConfig defaultStack = new InterceptorStackConfig.Builder("defaultStack")
-                .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
-                .addInterceptor(new InterceptorMapping("test", objectFactory.buildInterceptor(mockInterceptor, params)))
-                .build();
+            .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
+            .addInterceptor(new InterceptorMapping("test", objectFactory.buildInterceptor(mockInterceptor, params)))
+            .build();
 
         // the derivative interceptor stack
         InterceptorStackConfig derivativeStack = new InterceptorStackConfig.Builder("derivativeStack")
-                .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
-                .addInterceptor(new InterceptorMapping("test", objectFactory.buildInterceptor(mockInterceptor, params)))
-                .addInterceptor(new InterceptorMapping("logging", objectFactory.buildInterceptor(loggingInterceptor, new HashMap<String, String>())))
-                .build();
+            .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
+            .addInterceptor(new InterceptorMapping("test", objectFactory.buildInterceptor(mockInterceptor, params)))
+            .addInterceptor(new InterceptorMapping("logging", objectFactory.buildInterceptor(loggingInterceptor, new HashMap<String, String>())))
+            .build();
 
         // execute the configuration
         provider.init(configuration);
@@ -100,7 +105,7 @@
     }
 
     public void testInterceptorDefaultRefs() throws ConfigurationException {
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-interceptor-defaultref.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-interceptor-defaultref.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
 
@@ -141,7 +146,7 @@
     }
 
     public void testInterceptorInheritance() throws ConfigurationException {
-        
+
         // expectations - the inherited interceptor stack
         InterceptorStackConfig inheritedStack = new InterceptorStackConfig.Builder("subDefaultStack")
             .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
@@ -160,9 +165,9 @@
 
         // expectations - the inherited interceptor stack
         inheritedStack = new InterceptorStackConfig.Builder("subSubDefaultStack")
-                .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
-                .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
-                .build();
+            .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
+            .addInterceptor(new InterceptorMapping("noop", objectFactory.buildInterceptor(noopInterceptor, new HashMap<String, String>())))
+            .build();
 
         PackageConfig subSubPkg = configuration.getPackageConfig("subSubPackage");
         assertEquals(1, subSubPkg.getInterceptorConfigs().size());
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java
index 5c56e3a..3a8fbb3 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java
@@ -18,6 +18,7 @@
  */
 package com.opensymphony.xwork2.config.providers;
 
+import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
@@ -27,7 +28,17 @@
 import com.opensymphony.xwork2.config.entities.ResultTypeConfig;
 import com.opensymphony.xwork2.config.impl.MockConfiguration;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
+import org.apache.struts2.result.ServletDispatcherResult;
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+import org.w3c.dom.UserDataHandler;
 
 import java.io.File;
 import java.io.IOException;
@@ -42,15 +53,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import org.apache.struts2.result.ServletDispatcherResult;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.TypeInfo;
-import org.w3c.dom.UserDataHandler;
 
 
 public class XmlConfigurationProviderTest extends ConfigurationTestBase {
@@ -60,7 +62,7 @@
         ((MockConfiguration) configuration).selfRegister();
         container = configuration.getContainer();
 
-        XmlConfigurationProvider prov = new XmlConfigurationProvider("xwork-test-load-order.xml", true) {
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider("xwork-test-load-order.xml") {
             @Override
             protected Iterator<URL> getConfigurationUrls(String fileName) throws IOException {
                 List<URL> urls = new ArrayList<>();
@@ -83,7 +85,7 @@
 
     public static final long FILE_TS_WAIT_IN_MS = 3600000;
 
-    private static void changeFileTime(File f) throws Exception {
+    private static void changeFileTime(String filename, File f) throws Exception {
         final long orig = f.lastModified();
         final long maxwait = orig + FILE_TS_WAIT_IN_MS;
         long curr;
@@ -91,11 +93,12 @@
             Thread.sleep(500);
             assertTrue("Waited more than " + FILE_TS_WAIT_IN_MS + " ms to update timestamp on file: " + f, maxwait > curr);
         }
+        ActionContext.getContext().with("configurationReload-" + filename, null);
     }
 
     public void testNeedsReload() throws Exception {
         final String filename = "com/opensymphony/xwork2/config/providers/xwork-test-actions.xml";
-        ConfigurationProvider provider = new XmlConfigurationProvider(filename, true);
+        ConfigurationProvider provider = new StrutsXmlConfigurationProvider(filename);
         container.inject(provider);
         provider.init(configuration);
         provider.loadPackages();
@@ -105,14 +108,14 @@
 
         File file = new File(getClass().getResource("/" + filename).toURI());
         assertTrue("not exists: " + file.toString(), file.exists());
-        changeFileTime(file);
+        changeFileTime(filename, file);
 
         assertTrue(provider.needsReload());
     }
 
     public void testReload() throws Exception {
         final String filename = "com/opensymphony/xwork2/config/providers/xwork-test-reload.xml";
-        ConfigurationProvider provider = new XmlConfigurationProvider(filename, true);
+        ConfigurationProvider provider = new StrutsXmlConfigurationProvider(filename);
         loadConfigurationProviders(provider);
 
         assertFalse(provider.needsReload()); // Revision exists and timestamp didn't change
@@ -123,7 +126,7 @@
         Path configPath = Paths.get(file.getAbsolutePath());
         String content = new String(Files.readAllBytes(configPath));
         content = content.replaceAll("<constant name=\"struts.configuration.xml.reload\" value=\"true\" />",
-                "<constant name=\"struts.configuration.xml.reload\" value=\"false\" />");
+            "<constant name=\"struts.configuration.xml.reload\" value=\"false\" />");
         Files.write(configPath, content.getBytes()); // user demand: stop reloading configs
 
         try {
@@ -131,11 +134,11 @@
 
             configurationManager.reload();
 
-            changeFileTime(file);
+            changeFileTime(filename, file);
             assertFalse(provider.needsReload());    // user already has stopped reloading configs
         } finally {
             content = content.replaceAll("<constant name=\"struts.configuration.xml.reload\" value=\"false\" />",
-                    "<constant name=\"struts.configuration.xml.reload\" value=\"true\" />");
+                "<constant name=\"struts.configuration.xml.reload\" value=\"true\" />");
             Files.write(configPath, content.getBytes());
         }
     }
@@ -143,7 +146,7 @@
     public void testNeedsReloadNotReloadingConfigs() throws Exception {
         final String filename = "com/opensymphony/xwork2/config/providers/xwork-test-actions.xml";
         buildConfigurationProvider(filename);
-        ConfigurationProvider provider = new XmlConfigurationProvider(filename, true);
+        ConfigurationProvider provider = new StrutsXmlConfigurationProvider(filename);
         container.getInstance(FileManagerFactory.class).getFileManager().setReloadingConfigs(false);
         container.inject(provider);
         provider.init(configuration);
@@ -153,7 +156,7 @@
 
         File file = new File(getClass().getResource("/" + filename).toURI());
         assertTrue("not exists: " + file.toString(), file.exists());
-        changeFileTime(file);
+        changeFileTime(filename, file);
 
         assertFalse(provider.needsReload());
     }
@@ -210,7 +213,7 @@
     }
 
     public void testGuessResultType() {
-        XmlConfigurationProvider prov = new XmlConfigurationProvider();
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider("xwork.xml");
 
         assertEquals(null, prov.guessResultType(null));
         assertEquals("foo", prov.guessResultType("foo"));
@@ -221,7 +224,7 @@
 
     public void testEmptySpaces() throws Exception {
         final String filename = "com/opensymphony/xwork2/config/providers/xwork- test.xml";
-        ConfigurationProvider provider = new XmlConfigurationProvider(filename, true);
+        ConfigurationProvider provider = new StrutsXmlConfigurationProvider(filename);
         container.inject(provider);
         provider.init(configuration);
         provider.loadPackages();
@@ -234,7 +237,7 @@
         File file = new File(uri);
 
         assertTrue(file.exists());
-        changeFileTime(file);
+        changeFileTime(filename, file);
 
         assertTrue(provider.needsReload());
     }
@@ -242,7 +245,7 @@
     public void testEmptySpacesNotReloadingConfigs() throws Exception {
         final String filename = "com/opensymphony/xwork2/config/providers/xwork- test.xml";
         buildConfigurationProvider(filename);
-        ConfigurationProvider provider = new XmlConfigurationProvider(filename, true);
+        ConfigurationProvider provider = new StrutsXmlConfigurationProvider(filename);
         container.getInstance(FileManagerFactory.class).getFileManager().setReloadingConfigs(false);
         container.inject(provider);
         provider.init(configuration);
@@ -255,7 +258,7 @@
         File file = new File(uri);
 
         assertTrue(file.exists());
-        changeFileTime(file);
+        changeFileTime(filename, file);
 
         assertFalse(provider.needsReload());
     }
@@ -287,7 +290,7 @@
         File file = new File(jar);
 
         assertTrue("File [" + file + "] doesn't exist!", file.exists());
-        changeFileTime(file);
+        changeFileTime(jar, file);
 
         assertFalse(provider.needsReload());
     }
@@ -311,8 +314,8 @@
     /**
      * Test buildAllowedMethods() to ensure consistent results for processing
      * <allowed-methods/> in <action/> XML configuration elements.
-     * 
-     * @throws Exception 
+     *
+     * @throws Exception
      */
     public void testBuildAllowedMethods() throws Exception {
         // Test introduced with WW-5029 fix.
@@ -335,20 +338,20 @@
         NodeList mockNodeListSingleChild = new MockNodeList(singleStringList);
         NodeList mockNodeListMultipleChild = new MockNodeList(multipleStringList);
         Element mockSingleChildAllowedMethodsElement = new MockElement("allowed-methods", fakeBodyString,
-                "allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
+            "allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
         Element mockMultipleChildAllowedMethodsElement = new MockElement("allowed-methods", fakeBodyString,
-                "allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
+            "allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
         MockNodeList mockActionElementChildrenSingle = new MockNodeList();
         mockActionElementChildrenSingle.addToNodeList(mockSingleChildAllowedMethodsElement);
         MockNodeList mockActionElementChildrenMultiple = new MockNodeList();
         mockActionElementChildrenMultiple.addToNodeList(mockMultipleChildAllowedMethodsElement);
         Element mockActionElementSingle = new MockElement("action", "fakeBody", "action", "fakeValue",
-                Node.TEXT_NODE, mockActionElementChildrenSingle, null);
+            Node.TEXT_NODE, mockActionElementChildrenSingle, null);
         Element mockActionElementMultiple = new MockElement("action", "fakeBody", "action", "fakeValue",
-                Node.TEXT_NODE, mockActionElementChildrenMultiple, null);
+            Node.TEXT_NODE, mockActionElementChildrenMultiple, null);
         // Attempt the method using both types of Elements (single child and multiple child) and confirm
         // the result is the same for both.  Also confirm the results are as expected.
-        XmlConfigurationProvider prov = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml", false);
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml");
         Set<String> singleChildResult = prov.buildAllowedMethods(mockActionElementSingle, testPackageConfigBuilder);
         Set<String> multipleChildResult = prov.buildAllowedMethods(mockActionElementMultiple, testPackageConfigBuilder);
         assertNotNull("singleChildResult is null ?", singleChildResult);
@@ -365,8 +368,8 @@
     /**
      * Test loadGlobalAllowedMethods() to ensure consistent results for processing
      * <global-allowed-methods/> in <package/> XML configuration elements.
-     * 
-     * @throws Exception 
+     *
+     * @throws Exception
      */
     public void testLoadGlobalAllowedMethods() throws Exception {
         // Test introduced with WW-5029 fix.
@@ -389,19 +392,19 @@
         NodeList mockNodeListSingleChild = new MockNodeList(singleStringList);
         NodeList mockNodeListMultipleChild = new MockNodeList(multipleStringList);
         Element mockSingleChildAllowedMethodsElement = new MockElement("global-allowed-methods", fakeBodyString,
-                "global-allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
+            "global-allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
         Element mockMultipleChildAllowedMethodsElement = new MockElement("global-allowed-methods", fakeBodyString,
-                "global-allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
+            "global-allowed-methods", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
         MockNodeList mockPackageElementChildrenSingle = new MockNodeList();
         mockPackageElementChildrenSingle.addToNodeList(mockSingleChildAllowedMethodsElement);
         MockNodeList mockPackageElementChildrenMultiple = new MockNodeList();
         mockPackageElementChildrenMultiple.addToNodeList(mockMultipleChildAllowedMethodsElement);
         Element mockPackageElementSingle = new MockElement("package", "fakeBody", "package", "fakeValue",
-                Node.TEXT_NODE, mockPackageElementChildrenSingle, null);
+            Node.TEXT_NODE, mockPackageElementChildrenSingle, null);
         Element mockPackageElementMultiple = new MockElement("package", "fakeBody", "package", "fakeValue",
-                Node.TEXT_NODE, mockPackageElementChildrenMultiple, null);
+            Node.TEXT_NODE, mockPackageElementChildrenMultiple, null);
         // Attempt the method using the single child Element and confirm the result is as expected.
-        XmlConfigurationProvider prov = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml", false);
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml");
         prov.loadGlobalAllowedMethods(testPackageConfigBuilder, mockPackageElementSingle);
         Set<String> currentGlobalResult = testPackageConfigBuilder.getGlobalAllowedMethods();
         assertNotNull("currentGlobalResult is null ?", currentGlobalResult);
@@ -428,8 +431,8 @@
     /**
      * Test buildResults() to ensure consistent results for processing
      * <result/> in <action/> XML configuration elements.
-     * 
-     * @throws Exception 
+     *
+     * @throws Exception
      */
     public void testBuildResults() throws Exception {
         // Set up test using two mock DOM Elements:
@@ -443,7 +446,7 @@
         final String fakeBodyString2 = "/SomePath2/SomePath2/SomePath2/SomeJSP2.jsp";
         final String resultParam = "nonNullDefaultParam";
         PackageConfig.Builder testPackageConfigBuilder = new PackageConfig.Builder("resultsPackage");
-        ResultTypeConfig.Builder resultTypeConfigBuilder = new ResultTypeConfig.Builder("dispatcher", (String) ServletDispatcherResult.class.getName());
+        ResultTypeConfig.Builder resultTypeConfigBuilder = new ResultTypeConfig.Builder("dispatcher", ServletDispatcherResult.class.getName());
         resultTypeConfigBuilder.defaultResultParam(resultParam);
         ResultTypeConfig resultTypeConfig = resultTypeConfigBuilder.build();
         testPackageConfigBuilder.addResultTypeConfig(resultTypeConfig);
@@ -466,19 +469,19 @@
         NodeList mockNodeListMultipleChild = new MockNodeList(multipleStringList);
         NodeList mockNodeListMultipleChild2 = new MockNodeList(multipleStringList2);
         Element mockSingleChildResultElement = new MockElement("result", fakeBodyString,
-                "result", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
+            "result", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
         mockSingleChildResultElement.setAttribute("name", "input");
         mockSingleChildResultElement.setAttribute("type", "dispatcher");
         Element mockSingleChildResultElement2 = new MockElement("result", fakeBodyString2,
-                "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListSingleChild2, null);
+            "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListSingleChild2, null);
         mockSingleChildResultElement2.setAttribute("name", "success");
         mockSingleChildResultElement2.setAttribute("type", "dispatcher");
         Element mockMultipleChildAllowedMethodsElement = new MockElement("result", fakeBodyString,
-                "result", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
+            "result", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
         mockMultipleChildAllowedMethodsElement.setAttribute("name", "input");
         mockMultipleChildAllowedMethodsElement.setAttribute("type", "dispatcher");
         Element mockMultipleChildAllowedMethodsElement2 = new MockElement("result", fakeBodyString2,
-                "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListMultipleChild2, null);
+            "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListMultipleChild2, null);
         mockMultipleChildAllowedMethodsElement2.setAttribute("name", "success");
         mockMultipleChildAllowedMethodsElement2.setAttribute("type", "dispatcher");
         MockNodeList mockActionElementChildrenSingle = new MockNodeList();
@@ -488,12 +491,12 @@
         mockActionElementChildrenMultiple.addToNodeList(mockMultipleChildAllowedMethodsElement);
         mockActionElementChildrenMultiple.addToNodeList(mockMultipleChildAllowedMethodsElement2);
         Element mockActionElementSingle = new MockElement("action", "fakeBody", "action", "fakeValue",
-                Node.TEXT_NODE, mockActionElementChildrenSingle, null);
+            Node.TEXT_NODE, mockActionElementChildrenSingle, null);
         Element mockActionElementMultiple = new MockElement("action", "fakeBody", "action", "fakeValue",
-                Node.TEXT_NODE, mockActionElementChildrenMultiple, null);
+            Node.TEXT_NODE, mockActionElementChildrenMultiple, null);
         // Attempt the method using both types of Elements (single child and multiple child) and confirm
         // the result is the same for both.  Also confirm the results are as expected.
-        XmlConfigurationProvider prov = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml", false);
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml");
         Map<String, ResultConfig> singleChildResult = prov.buildResults(mockActionElementSingle, testPackageConfigBuilder);
         Map<String, ResultConfig> multipleChildResult = prov.buildResults(mockActionElementMultiple, testPackageConfigBuilder);
         assertNotNull("singleChildResult is null ?", singleChildResult);
@@ -511,16 +514,16 @@
         assertNotNull("inputResultParams (multipleChildResult) is null ?", inputResultParams);
         assertNotNull("successResultParams (multipleChildResult) is null ?", successResultParams);
         assertEquals("inputResult (multipleChildResult) resultParam value not equal to fakeBodyString ?",
-                fakeBodyString, inputResultParams.get(resultParam));
+            fakeBodyString, inputResultParams.get(resultParam));
         assertEquals("successResult (multipleChildResult) resultParam value not equal to fakeBodyString2 ?",
-                fakeBodyString2, successResultParams.get(resultParam));
+            fakeBodyString2, successResultParams.get(resultParam));
     }
 
     /**
      * Test loadGlobalResults() to ensure consistent results for processing
      * <global-results/> in <package/> XML configuration elements.
-     * 
-     * @throws Exception 
+     *
+     * @throws Exception
      */
     public void testLoadGlobalResults() throws Exception {
         // Set up test using two mock DOM Elements:
@@ -534,7 +537,7 @@
         final String fakeBodyString2 = "/SomePath2/SomePath2/SomePath2/SomeJSP2.jsp";
         final String resultParam = "nonNullDefaultParam";
         PackageConfig.Builder testPackageConfigBuilder = new PackageConfig.Builder("resultsPackage");
-        ResultTypeConfig.Builder resultTypeConfigBuilder = new ResultTypeConfig.Builder("dispatcher", (String) ServletDispatcherResult.class.getName());
+        ResultTypeConfig.Builder resultTypeConfigBuilder = new ResultTypeConfig.Builder("dispatcher", ServletDispatcherResult.class.getName());
         resultTypeConfigBuilder.defaultResultParam(resultParam);
         ResultTypeConfig resultTypeConfig = resultTypeConfigBuilder.build();
         testPackageConfigBuilder.addResultTypeConfig(resultTypeConfig);
@@ -557,19 +560,19 @@
         NodeList mockNodeListMultipleChild = new MockNodeList(multipleStringList);
         NodeList mockNodeListMultipleChild2 = new MockNodeList(multipleStringList2);
         Element mockSingleChildResultElement = new MockElement("result", fakeBodyString,
-                "result", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
+            "result", fakeBodyString, Node.TEXT_NODE, mockNodeListSingleChild, null);
         mockSingleChildResultElement.setAttribute("name", "input");
         mockSingleChildResultElement.setAttribute("type", "dispatcher");
         Element mockSingleChildResultElement2 = new MockElement("result", fakeBodyString2,
-                "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListSingleChild2, null);
+            "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListSingleChild2, null);
         mockSingleChildResultElement2.setAttribute("name", "success");
         mockSingleChildResultElement2.setAttribute("type", "dispatcher");
         Element mockMultipleChildAllowedMethodsElement = new MockElement("result", fakeBodyString,
-                "result", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
+            "result", fakeBodyString, Node.TEXT_NODE, mockNodeListMultipleChild, null);
         mockMultipleChildAllowedMethodsElement.setAttribute("name", "input2");
         mockMultipleChildAllowedMethodsElement.setAttribute("type", "dispatcher");
         Element mockMultipleChildAllowedMethodsElement2 = new MockElement("result", fakeBodyString,
-                "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListMultipleChild2, null);
+            "result", fakeBodyString2, Node.TEXT_NODE, mockNodeListMultipleChild2, null);
         mockMultipleChildAllowedMethodsElement2.setAttribute("name", "success2");
         mockMultipleChildAllowedMethodsElement2.setAttribute("type", "dispatcher");
         MockNodeList mockGlobalResultsElementChildrenSingle = new MockNodeList();
@@ -579,19 +582,19 @@
         mockGlobalResultsElementChildrenMultiple.addToNodeList(mockMultipleChildAllowedMethodsElement);
         mockGlobalResultsElementChildrenMultiple.addToNodeList(mockMultipleChildAllowedMethodsElement2);
         Element mockGlobalResultsElementSingle = new MockElement("global-results", "fakeBody", "global-results", "fakeValue",
-                Node.TEXT_NODE, mockGlobalResultsElementChildrenSingle, null);
+            Node.TEXT_NODE, mockGlobalResultsElementChildrenSingle, null);
         Element mockGlobalResultsGlobalResultsElementMultiple = new MockElement("global-results", "fakeBody", "global-results", "fakeValue",
-                Node.TEXT_NODE, mockGlobalResultsElementChildrenMultiple, null);
+            Node.TEXT_NODE, mockGlobalResultsElementChildrenMultiple, null);
         MockNodeList mockPackageElementChildrenSingle = new MockNodeList();
         mockPackageElementChildrenSingle.addToNodeList(mockGlobalResultsElementSingle);
         MockNodeList mockPackageElementChildrenMultiple = new MockNodeList();
         mockPackageElementChildrenMultiple.addToNodeList(mockGlobalResultsGlobalResultsElementMultiple);
         Element mockPackageElementSingle = new MockElement("package", "fakeBody", "package", "fakeValue",
-                Node.TEXT_NODE, mockPackageElementChildrenSingle, null);
+            Node.TEXT_NODE, mockPackageElementChildrenSingle, null);
         Element mockPackageElementMultiple = new MockElement("package", "fakeBody", "package", "fakeValue",
-                Node.TEXT_NODE, mockPackageElementChildrenMultiple, null);
+            Node.TEXT_NODE, mockPackageElementChildrenMultiple, null);
         // Attempt the global laod method using single child Elements first, and confirm the results are as expected.
-        XmlConfigurationProvider prov = new XmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml", false);
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork- test.xml");
         prov.loadGlobalResults(testPackageConfigBuilder, mockPackageElementSingle);
         PackageConfig testPackageConfig = testPackageConfigBuilder.build();
         Map<String, ResultConfig> currentGlobalResults = testPackageConfig.getAllGlobalResults();
@@ -606,9 +609,9 @@
         assertNotNull("inputResultParams (currentGlobalResults - single) is null ?", inputResultParams);
         assertNotNull("successResultParams (currentGlobalResults - single) is null ?", successResultParams);
         assertEquals("inputResult (currentGlobalResults - single) resultParam value not equal to fakeBodyString ?",
-                fakeBodyString, inputResultParams.get(resultParam));
+            fakeBodyString, inputResultParams.get(resultParam));
         assertEquals("successResult (currentGlobalResults - single) resultParam value not equal to fakeBodyString2 ?",
-                fakeBodyString2, successResultParams.get(resultParam));
+            fakeBodyString2, successResultParams.get(resultParam));
         // Attempt the global laod method using mutliple child Elements next, and confirm the results are as expected.
         prov.loadGlobalResults(testPackageConfigBuilder, mockPackageElementMultiple);
         testPackageConfig = testPackageConfigBuilder.build();
@@ -624,9 +627,9 @@
         assertNotNull("inputResultParams2 (currentGlobalResults - multiple) is null ?", inputResultParams2);
         assertNotNull("successResultParams2 (currentGlobalResults - multiple) is null ?", successResultParams2);
         assertEquals("inputResult2 (currentGlobalResults - multiple) resultParam value not equal to fakeBodyString ?",
-                fakeBodyString, inputResultParams2.get(resultParam));
+            fakeBodyString, inputResultParams2.get(resultParam));
         assertEquals("successResult2 (currentGlobalResults - multiple) resultParam value not equal to fakeBodyString2 ?",
-                fakeBodyString2, successResultParams2.get(resultParam));
+            fakeBodyString2, successResultParams2.get(resultParam));
         // Confirm the previous global results are still present
         inputResult = currentGlobalResults.get("input");
         successResult = currentGlobalResults.get("success");
@@ -637,9 +640,9 @@
         assertNotNull("inputResultParams (currentGlobalResults - single) is null ?", inputResultParams);
         assertNotNull("successResultParams (currentGlobalResults - single) is null ?", successResultParams);
         assertEquals("inputResult (currentGlobalResults - single) resultParam value not equal to fakeBodyString ?",
-                fakeBodyString, inputResultParams.get(resultParam));
+            fakeBodyString, inputResultParams.get(resultParam));
         assertEquals("successResult (currentGlobalResults - single) resultParam value not equal to fakeBodyString2 ?",
-                fakeBodyString2, successResultParams.get(resultParam));
+            fakeBodyString2, successResultParams.get(resultParam));
         inputResult = currentGlobalResults.get("input");
         successResult = currentGlobalResults.get("success");
         assertNotNull("inputResult (currentGlobalResults - single) is null ?", inputResult);
@@ -649,14 +652,14 @@
         assertNotNull("inputResultParams (currentGlobalResults - single) is null ?", inputResultParams);
         assertNotNull("successResultParams (currentGlobalResults - single) is null ?", successResultParams);
         assertEquals("inputResult (currentGlobalResults - single) resultParam value not equal to fakeBodyString ?",
-                fakeBodyString, inputResultParams.get(resultParam));
+            fakeBodyString, inputResultParams.get(resultParam));
         assertEquals("successResult (currentGlobalResults - single) resultParam value not equal to fakeBodyString2 ?",
-                fakeBodyString2, successResultParams.get(resultParam));
+            fakeBodyString2, successResultParams.get(resultParam));
     }
 
     /**
      * Mock NodeList.
-     * 
+     * <p>
      * Provides minimal functionality to permit limited mock DOM testing.
      */
     protected class MockNodeList implements org.w3c.dom.NodeList {
@@ -669,8 +672,8 @@
         /**
          * Produces TEXT_NODE Nodes based on the input List of Strings.  Node names
          * follow a simple pattern "nodeX" where X is the index.
-         * 
-         * @param stringList 
+         *
+         * @param stringList
          */
         public MockNodeList(List<String> stringList) {
             if (stringList != null) {
@@ -737,7 +740,7 @@
 
     /**
      * MockNode
-     * 
+     * <p>
      * Provides minimal functionality to permit limited mock DOM testing.
      */
     protected class MockNode implements org.w3c.dom.Node {
@@ -854,7 +857,7 @@
 
         @Override
         public boolean hasChildNodes() {
-            return (childNodes != null ? childNodes.getLength() > 0 : false);
+            return (childNodes != null && childNodes.getLength() > 0);
         }
 
         @Override
@@ -960,16 +963,16 @@
 
     /**
      * Mock Element.
-     * 
+     * <p>
      * Provides minimal functionality to permit limited mock DOM testing.
      */
     protected class MockElement extends MockNode implements org.w3c.dom.Element {
         final private String tagName;
         final private String tagBody;
-        final private Map<String, String> attributes; 
+        final private Map<String, String> attributes;
 
         public MockElement(String tagName, String tagBody,
-                String nodeName, String nodeValue, short nodeType, NodeList childNodes, Node parentNode) {
+                           String nodeName, String nodeValue, short nodeType, NodeList childNodes, Node parentNode) {
             super(nodeName, nodeValue, nodeType, childNodes, parentNode);
             this.tagName = nodeName;
             this.tagBody = nodeValue;
diff --git a/core/src/test/java/com/opensymphony/xwork2/interceptor/AliasInterceptorTest.java b/core/src/test/java/com/opensymphony/xwork2/interceptor/AliasInterceptorTest.java
index 9014125..3671de9 100644
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/AliasInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/AliasInterceptorTest.java
@@ -18,11 +18,17 @@
  */
 package com.opensymphony.xwork2.interceptor;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.SimpleFooAction;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
 import com.opensymphony.xwork2.mock.MockActionProxy;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
@@ -44,6 +50,7 @@
  *    <interceptor-ref name="alias"/>
  * </action>
  * </pre>
+ *
  * @author Matthew Payne
  */
 public class AliasInterceptorTest extends XWorkTestCase {
@@ -52,7 +59,7 @@
         Map<String, Object> params = new HashMap<>();
         params.put("aliasSource", "source here");
 
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
         ActionProxy proxy = actionProxyFactory.createActionProxy("", "aliasTest", null, params);
@@ -72,7 +79,7 @@
         httpParams.put("notExisting", "from http parameter");
         params.put(ActionContext.PARAMETERS, HttpParameters.create(httpParams).build());
 
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
         ActionProxy proxy = actionProxyFactory.createActionProxy("", "aliasTest", null, params);
@@ -94,8 +101,8 @@
         MockActionProxy map = new MockActionProxy();
 
         ActionConfig cfg = new ActionConfig.Builder("", "", "")
-                .addParam("aliases", "invalid alias expression")
-                .build();
+            .addParam("aliases", "invalid alias expression")
+            .build();
         map.setConfig(cfg);
 
         mai.setProxy(map);
@@ -117,8 +124,8 @@
         MockActionProxy map = new MockActionProxy();
 
         ActionConfig cfg = new ActionConfig.Builder("", "", "")
-                .addParam("hello", "invalid alias expression")
-                .build();
+            .addParam("hello", "invalid alias expression")
+            .build();
         map.setConfig(cfg);
 
         mai.setProxy(map);
@@ -141,8 +148,8 @@
         MockActionProxy map = new MockActionProxy();
 
         ActionConfig cfg = new ActionConfig.Builder("", "", "")
-                .addParam("hello", "invalid alias expression")
-                .build();
+            .addParam("hello", "invalid alias expression")
+            .build();
         map.setConfig(cfg);
 
         mai.setProxy(map);
diff --git a/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java b/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java
index cf0c6ee..ab1bfbf 100644
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java
@@ -18,7 +18,14 @@
  */
 package com.opensymphony.xwork2.interceptor;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionChainResult;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ActionProxyFactory;
+import com.opensymphony.xwork2.DefaultActionProxyFactory;
+import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
@@ -30,15 +37,15 @@
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.inject.ContainerBuilder;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
-
-import java.util.*;
-
 import org.apache.struts2.TestResult;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
+
+import java.util.Collections;
+import java.util.HashMap;
 
 
 /**
  * Unit test for {@link ChainingInterceptor} with a configuration provider.
- *
  */
 public class ChainingInterceptorWithConfigTest extends XWorkTestCase {
 
@@ -59,13 +66,13 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-default.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-default.xml");
         container.inject(provider);
         this.objectFactory = container.getInstance(ObjectFactory.class);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
     }
 
-    
+
     private class MockConfigurationProvider implements ConfigurationProvider {
         private Configuration config;
 
@@ -77,7 +84,8 @@
             return false;
         }
 
-        public void destroy() { }
+        public void destroy() {
+        }
 
 
         public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException {
@@ -101,17 +109,17 @@
             successParams2.put("propertyName", "blah");
             successParams2.put("expectedValue", null);
 
-            InterceptorConfig chainingInterceptorConfig =  new InterceptorConfig.Builder("chainStack", ChainingInterceptor.class.getName()).build();
+            InterceptorConfig chainingInterceptorConfig = new InterceptorConfig.Builder("chainStack", ChainingInterceptor.class.getName()).build();
             PackageConfig packageConfig = new PackageConfig.Builder("default")
-                    .addActionConfig(CHAINED_ACTION, new ActionConfig.Builder("defaultPackage", CHAINED_ACTION, SimpleAction.class.getName())
-                            .addResultConfig(new ResultConfig.Builder(Action.ERROR, ActionChainResult.class.getName()).addParam("actionName", CHAINTO_ACTION).build())
-                            .build())
-                    .addActionConfig(CHAINTO_ACTION, new ActionConfig.Builder("defaultPackage", CHAINTO_ACTION, SimpleAction.class.getName())
-                            .addInterceptors(Collections.singletonList(new InterceptorMapping("chainStack", objectFactory.buildInterceptor(chainingInterceptorConfig, interceptorParams))))
-                            .addResultConfig(new ResultConfig.Builder(Action.SUCCESS, TestResult.class.getName()).addParams(successParams1).build())
-                            .addResultConfig(new ResultConfig.Builder(Action.ERROR, TestResult.class.getName()).addParams(successParams2).build())
-                            .build())
-                    .build();
+                .addActionConfig(CHAINED_ACTION, new ActionConfig.Builder("defaultPackage", CHAINED_ACTION, SimpleAction.class.getName())
+                    .addResultConfig(new ResultConfig.Builder(Action.ERROR, ActionChainResult.class.getName()).addParam("actionName", CHAINTO_ACTION).build())
+                    .build())
+                .addActionConfig(CHAINTO_ACTION, new ActionConfig.Builder("defaultPackage", CHAINTO_ACTION, SimpleAction.class.getName())
+                    .addInterceptors(Collections.singletonList(new InterceptorMapping("chainStack", objectFactory.buildInterceptor(chainingInterceptorConfig, interceptorParams))))
+                    .addResultConfig(new ResultConfig.Builder(Action.SUCCESS, TestResult.class.getName()).addParams(successParams1).build())
+                    .addResultConfig(new ResultConfig.Builder(Action.ERROR, TestResult.class.getName()).addParams(successParams2).build())
+                    .build())
+                .build();
             config.addPackageConfig("defaultPackage", packageConfig);
             config.addPackageConfig("default", new PackageConfig.Builder(packageConfig).name("default").build());
         }
diff --git a/core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java b/core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
index d2e0e1e..381f909 100644
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/ParametersInterceptorTest.java
@@ -18,10 +18,17 @@
  */
 package com.opensymphony.xwork2.interceptor;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ModelDrivenAction;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.TestBean;
+import com.opensymphony.xwork2.TextProvider;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.providers.MockConfigurationProvider;
-import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider;
+import com.opensymphony.xwork2.config.providers.StrutsDefaultConfigurationProvider;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
@@ -32,13 +39,21 @@
 import com.opensymphony.xwork2.util.CompoundRoot;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
-import org.junit.Assert;
 import ognl.OgnlContext;
 import ognl.PropertyAccessor;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
+import org.junit.Assert;
 
 import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -80,12 +95,12 @@
 
     public void testInsecureParameters() throws Exception {
         // given
-        loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-param-test.xml"));
+        loadConfigurationProviders(new StrutsDefaultConfigurationProvider(), new StrutsXmlConfigurationProvider("xwork-param-test.xml"));
         final Map<String, Object> params = new HashMap<String, Object>() {
             {
                 put("name", "(#context[\"xwork.MethodAccessor.denyMethodExecution\"]= new " +
-                        "java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), " +
-                        "@java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)");
+                    "java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), " +
+                    "@java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)");
                 put("top['name'](0)", "true");
                 put("expression", "#f=#_memberAccess.getClass().getDeclaredField('allowStaticMethodAccess'),#f.setAccessible(true),#f.set(#_memberAccess,true),#req=@org.apache.struts2.ServletActionContext@getRequest(),#resp=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),#resp.println(#req.getRealPath('/')),#resp.close()");
             }
@@ -117,7 +132,7 @@
         final String pollution1 = "class.classLoader.jarPath";
         final String pollution2 = "model.class.classLoader.jarPath";
 
-        loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-param-test.xml"));
+        loadConfigurationProviders(new StrutsDefaultConfigurationProvider(), new StrutsXmlConfigurationProvider("xwork-param-test.xml"));
         final Map<String, Object> params = new HashMap<String, Object>() {
             {
                 put(pollution1, "bad");
@@ -156,7 +171,7 @@
         final String pollution2 = "model.class.classLoader.jarPath";
         final String pollution3 = "class.classLoader.defaultAssertionStatus";
 
-        loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-class-param-test.xml"));
+        loadConfigurationProviders(new StrutsDefaultConfigurationProvider(), new StrutsXmlConfigurationProvider("xwork-class-param-test.xml"));
         final Map<String, Object> params = new HashMap<String, Object>() {
             {
                 put(pollution1, "bad");
@@ -240,14 +255,14 @@
         Map<String, Object> params = new HashMap<>();
         params.put("blah", "This is blah");
         params.put("#session.foo", "Foo");
-        params.put("\u0023session[\'user\']", "0wn3d");
-        params.put("\\u0023session[\'user\']", "0wn3d");
+        params.put("\u0023session['user']", "0wn3d");
+        params.put("\\u0023session['user']", "0wn3d");
         params.put("\u0023session.user2", "0wn3d");
         params.put("\\u0023session.user2", "0wn3d");
-        params.put("('\u0023'%20%2b%20'session[\'user3\']')(unused)", "0wn3d");
+        params.put("('\u0023'%20%2b%20'session['user3']')(unused)", "0wn3d");
         params.put("('\\u0023' + 'session[\\'user4\\']')(unused)", "0wn3d");
-        params.put("('\u0023'%2b'session[\'user5\']')(unused)", "0wn3d");
-        params.put("('\\u0023'%2b'session[\'user5\']')(unused)", "0wn3d");
+        params.put("('\u0023'%2b'session['user5']')(unused)", "0wn3d");
+        params.put("('\\u0023'%2b'session['user5']')(unused)", "0wn3d");
 
         HashMap<String, Object> extraContext = new HashMap<>();
         extraContext.put(ActionContext.PARAMETERS, HttpParameters.create(params).build());
@@ -275,7 +290,7 @@
         final String pollution5 = "class['classLoader']['jarPath']";
         final String pollution6 = "class[\"classLoader\"]['jarPath']";
 
-        loadConfigurationProviders(new XWorkConfigurationProvider(), new XmlConfigurationProvider("xwork-param-test.xml"));
+        loadConfigurationProviders(new StrutsDefaultConfigurationProvider(), new StrutsXmlConfigurationProvider("xwork-param-test.xml"));
         final Map<String, Object> params = new HashMap<String, Object>() {
             {
                 put(pollution1, "bad");
@@ -518,8 +533,8 @@
     public void testEvalExpressionAsParameterName() throws Exception {
         Map<String, Object> params = new HashMap<>();
         params.put("blah", "(#context[\"xwork.MethodAccessor.denyMethodExecution\"]= new " +
-                "java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), " +
-                "@java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)");
+            "java.lang.Boolean(false), #_memberAccess[\"allowStaticMethodAccess\"]= new java.lang.Boolean(true), " +
+            "@java.lang.Runtime@getRuntime().exec('mkdir /tmp/PWNAGE'))(meh)");
         params.put("top['blah'](0)", "true");
 
         HashMap<String, Object> extraContext = new HashMap<>();
@@ -552,10 +567,10 @@
     }
 
     public void testNonexistentParametersGetLoggedInDevMode() throws Exception {
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(provider);
         loadConfigurationProviders(provider,
-                new MockConfigurationProvider(Collections.singletonMap("struts.devMode", "true")));
+            new MockConfigurationProvider(Collections.singletonMap("struts.devMode", "true")));
         Map<String, Object> params = new HashMap<>();
         params.put("not_a_property", "There is no action property named like this");
 
@@ -571,10 +586,10 @@
     }
 
     public void testNonexistentParametersAreIgnoredInProductionMode() throws Exception {
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(provider);
         loadConfigurationProviders(provider,
-                new MockConfigurationProvider(Collections.singletonMap("struts.devMode", "false")));
+            new MockConfigurationProvider(Collections.singletonMap("struts.devMode", "false")));
         Map<String, Object> params = new HashMap<>();
         params.put("not_a_property", "There is no action property named like this");
 
@@ -717,13 +732,13 @@
 
     public void testBeanListSingleValue() throws Exception {
         Map<String, Object> params = new HashMap<>();
-        params.put("beanList.name", new String[] { "Superman" });
+        params.put("beanList.name", new String[]{"Superman"});
 
         HashMap<String, Object> extraContext = new HashMap<>();
         extraContext.put(ActionContext.PARAMETERS, HttpParameters.create(params).build());
 
         ActionProxy proxy = actionProxyFactory.createActionProxy("",
-                MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
+            MockConfigurationProvider.PARAM_INTERCEPTOR_ACTION_NAME, null, extraContext);
         proxy.execute();
         SimpleAction action = (SimpleAction) proxy.getAction();
         assertNotNull(action);
@@ -762,9 +777,9 @@
 
     private ValueStack createStubValueStack(final Map<String, Object> actual) {
         ValueStack stack = new OgnlValueStack(
-                container.getInstance(XWorkConverter.class),
-                (CompoundRootAccessor) container.getInstance(PropertyAccessor.class, CompoundRoot.class.getName()),
-                container.getInstance(TextProvider.class, "system"), true, true) {
+            container.getInstance(XWorkConverter.class),
+            (CompoundRootAccessor) container.getInstance(PropertyAccessor.class, CompoundRoot.class.getName()),
+            container.getInstance(TextProvider.class, "system"), true, true) {
             @Override
             public void setValue(String expr, Object value) {
                 actual.put(expr, value);
@@ -804,7 +819,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(provider);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
 
@@ -816,7 +831,7 @@
 
 class ValidateAction implements ValidationAware {
 
-    private List<String> messages = new LinkedList<>();
+    private final List<String> messages = new LinkedList<>();
     private String name;
 
     public void setActionErrors(Collection<String> errorMessages) {
diff --git a/core/src/test/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptorTest.java b/core/src/test/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptorTest.java
index 7019eda..425bdee 100644
--- a/core/src/test/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/annotations/AnnotationWorkflowInterceptorTest.java
@@ -18,7 +18,12 @@
  */
 package com.opensymphony.xwork2.interceptor.annotations;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ActionProxyFactory;
+import com.opensymphony.xwork2.DefaultActionProxyFactory;
+import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
@@ -30,6 +35,7 @@
 import com.opensymphony.xwork2.inject.ContainerBuilder;
 import com.opensymphony.xwork2.mock.MockResult;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.Collections;
 
@@ -43,9 +49,9 @@
     private final AnnotationWorkflowInterceptor annotationWorkflow = new AnnotationWorkflowInterceptor();
 
     @Override
-    public void setUp() throws Exception{
+    public void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-default.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-default.xml");
         container.inject(provider);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
     }
@@ -53,14 +59,14 @@
     public void testInterceptsBeforeAndAfter() throws Exception {
         ActionProxy proxy = actionProxyFactory.createActionProxy("", ANNOTATED_ACTION, null, null);
         assertEquals(Action.SUCCESS, proxy.execute());
-        AnnotatedAction action = (AnnotatedAction)proxy.getInvocation().getAction();
+        AnnotatedAction action = (AnnotatedAction) proxy.getInvocation().getAction();
         assertEquals("interfaceBefore-baseBefore-basePrivateBefore-before-execute-beforeResult-basePrivateBeforeResult-interfaceBeforeResult-after-basePrivateAfter-interfaceAfter", action.log);
     }
 
     public void testInterceptsShortcircuitedAction() throws Exception {
         ActionProxy proxy = actionProxyFactory.createActionProxy("", SHORTCIRCUITED_ACTION, null, null);
         assertEquals("shortcircuit", proxy.execute());
-        ShortcircuitedAction action = (ShortcircuitedAction)proxy.getInvocation().getAction();
+        ShortcircuitedAction action = (ShortcircuitedAction) proxy.getInvocation().getAction();
         assertEquals("interfaceBefore-baseBefore-basePrivateBefore-before-basePrivateBeforeResult-interfaceBeforeResult", action.log);
     }
 
@@ -75,7 +81,8 @@
             return false;
         }
 
-        public void destroy() { }
+        public void destroy() {
+        }
 
 
         public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException {
@@ -89,15 +96,15 @@
 
         public void loadPackages() throws ConfigurationException {
             PackageConfig packageConfig = new PackageConfig.Builder("default")
-                    .addActionConfig(ANNOTATED_ACTION, new ActionConfig.Builder("defaultPackage", ANNOTATED_ACTION, AnnotatedAction.class.getName())
-                            .addInterceptors(Collections.singletonList(new InterceptorMapping("annotationWorkflow", annotationWorkflow)))
-                            .addResultConfig(new ResultConfig.Builder("success", MockResult.class.getName()).build())
-                            .build())
-                    .addActionConfig(SHORTCIRCUITED_ACTION, new ActionConfig.Builder("defaultPackage", SHORTCIRCUITED_ACTION, ShortcircuitedAction.class.getName())
-                            .addInterceptors(Collections.singletonList(new InterceptorMapping("annotationWorkflow", annotationWorkflow)))
-                            .addResultConfig(new ResultConfig.Builder("shortcircuit", MockResult.class.getName()).build())
-                            .build())
-                    .build();
+                .addActionConfig(ANNOTATED_ACTION, new ActionConfig.Builder("defaultPackage", ANNOTATED_ACTION, AnnotatedAction.class.getName())
+                    .addInterceptors(Collections.singletonList(new InterceptorMapping("annotationWorkflow", annotationWorkflow)))
+                    .addResultConfig(new ResultConfig.Builder("success", MockResult.class.getName()).build())
+                    .build())
+                .addActionConfig(SHORTCIRCUITED_ACTION, new ActionConfig.Builder("defaultPackage", SHORTCIRCUITED_ACTION, ShortcircuitedAction.class.getName())
+                    .addInterceptors(Collections.singletonList(new InterceptorMapping("annotationWorkflow", annotationWorkflow)))
+                    .addResultConfig(new ResultConfig.Builder("shortcircuit", MockResult.class.getName()).build())
+                    .build())
+                .build();
             config.addPackageConfig("defaultPackage", packageConfig);
             config.addPackageConfig("default", new PackageConfig.Builder(packageConfig).name("default").build());
         }
diff --git a/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java b/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java
index 62a9d07..eff352b 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java
@@ -18,13 +18,14 @@
  */
 package com.opensymphony.xwork2.ognl;
 
-import java.lang.reflect.Member;
-import java.util.HashMap;
-import java.util.Map;
-
 import com.opensymphony.xwork2.ActionProxy;
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
+
+import java.lang.reflect.Member;
+import java.util.HashMap;
+import java.util.Map;
 
 public class SecurityMemberAccessProxyTest extends XWorkTestCase {
     private Map<String, Object> context;
@@ -35,14 +36,14 @@
 
         context = new HashMap<>();
         // Set up XWork
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("com/opensymphony/xwork2/spring/actionContext-xwork.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/spring/actionContext-xwork.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
     }
 
     public void testProxyAccessIsBlocked() throws Exception {
         ActionProxy proxy = actionProxyFactory.createActionProxy(null,
-                "chaintoAOPedTestSubBeanAction", null, context);
+            "chaintoAOPedTestSubBeanAction", null, context);
 
         SecurityMemberAccess sma = new SecurityMemberAccess(false, true);
         sma.setDisallowProxyMemberAccess(true);
@@ -55,7 +56,7 @@
 
     public void testProxyAccessIsAccessible() throws Exception {
         ActionProxy proxy = actionProxyFactory.createActionProxy(null,
-                "chaintoAOPedTestSubBeanAction", null, context);
+            "chaintoAOPedTestSubBeanAction", null, context);
 
         SecurityMemberAccess sma = new SecurityMemberAccess(false, true);
 
diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java b/core/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java
index 971c4db..65a3700 100644
--- a/core/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/spring/ActionsFromSpringTest.java
@@ -18,9 +18,16 @@
  */
 package com.opensymphony.xwork2.spring;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.TestSubBean;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import org.apache.commons.lang3.reflect.MethodUtils;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 import org.springframework.context.ApplicationContext;
 
@@ -35,14 +42,15 @@
 public class ActionsFromSpringTest extends XWorkTestCase {
     private ApplicationContext appContext;
 
-    @Override public void setUp() throws Exception {
+    @Override
+    public void setUp() throws Exception {
         super.setUp();
 
         // Set up XWork
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("com/opensymphony/xwork2/spring/actionContext-xwork.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/spring/actionContext-xwork.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
-        appContext = ((SpringObjectFactory)container.getInstance(ObjectFactory.class)).appContext;
+        appContext = ((SpringObjectFactory) container.getInstance(ObjectFactory.class)).appContext;
     }
 
     public void testLoadSimpleAction() throws Exception {
@@ -87,20 +95,20 @@
         String result = action.execute();
         assertEquals(Action.INPUT, result);
     }
-    
+
     public void testActionWithSpringResult() throws Exception {
-    	        ActionProxy proxy = actionProxyFactory.createActionProxy(null, "simpleActionSpringResult", null, null);
-    	                
-    	        proxy.execute();
-    	        
-    	        SpringResult springResult = (SpringResult) proxy.getInvocation().getResult();
-    	        assertTrue(springResult.isInitialize());
-    	        assertNotNull(springResult.getStringParameter());
+        ActionProxy proxy = actionProxyFactory.createActionProxy(null, "simpleActionSpringResult", null, null);
+
+        proxy.execute();
+
+        SpringResult springResult = (SpringResult) proxy.getInvocation().getResult();
+        assertTrue(springResult.isInitialize());
+        assertNotNull(springResult.getStringParameter());
     }
 
     public void testChainingProxiedActions() throws Exception {
         ActionProxy proxy = actionProxyFactory.createActionProxy(null, "chainedAOPedTestBeanAction",
-                null, null);
+            null, null);
 
         proxy.execute();
 
@@ -131,7 +139,7 @@
         extraContext.put(ActionContext.PARAMETERS, HttpParameters.create(params).build());
 
         ActionProxy proxy = actionProxyFactory.createActionProxy(null,
-                "chaintoAOPedTestSubBeanAction", null, extraContext);
+            "chaintoAOPedTestSubBeanAction", null, extraContext);
 
         // when
         proxy.execute();
@@ -140,6 +148,6 @@
         //then
         assertEquals("S2-047", ((TestSubBean) action).getIssueId());
         assertFalse("proxied action is accessible!",
-                (boolean) MethodUtils.invokeMethod(action, "isExposeProxy"));
+            (boolean) MethodUtils.invokeMethod(action, "isExposeProxy"));
     }
 }
diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java b/core/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java
index ce19976..7b77294 100644
--- a/core/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/spring/SpringProxyUtilTest.java
@@ -18,26 +18,31 @@
  */
 package com.opensymphony.xwork2.spring;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.TestBean;
+import com.opensymphony.xwork2.TestSubBean;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.util.ProxyUtil;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.springframework.context.ApplicationContext;
 
 /**
  * Test various utility methods dealing with spring proxies.
- *
  */
 public class SpringProxyUtilTest extends XWorkTestCase {
     private ApplicationContext appContext;
 
-    @Override public void setUp() throws Exception {
+    @Override
+    public void setUp() throws Exception {
         super.setUp();
 
         // Set up XWork
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("com/opensymphony/xwork2/spring/actionContext-xwork.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/spring/actionContext-xwork.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
-        appContext = ((SpringObjectFactory)container.getInstance(ObjectFactory.class)).appContext;
+        appContext = ((SpringObjectFactory) container.getInstance(ObjectFactory.class)).appContext;
     }
 
     public void testIsProxy() throws Exception {
@@ -91,26 +96,26 @@
 
         Object simpleAction = appContext.getBean("simple-action");
         assertFalse(ProxyUtil.isProxyMember(
-                simpleAction.getClass().getMethod("setName", String.class), simpleAction));
+            simpleAction.getClass().getMethod("setName", String.class), simpleAction));
 
         Object proxiedAction = appContext.getBean("proxied-action");
         assertTrue(ProxyUtil.isProxyMember(
-                proxiedAction.getClass().getMethod("setExposeProxy", boolean.class), proxiedAction));
+            proxiedAction.getClass().getMethod("setExposeProxy", boolean.class), proxiedAction));
 
         Object autoProxiedAction = appContext.getBean("auto-proxied-action");
         assertTrue(ProxyUtil.isProxyMember(
-                autoProxiedAction.getClass().getMethod("getTargetClass"), autoProxiedAction));
+            autoProxiedAction.getClass().getMethod("getTargetClass"), autoProxiedAction));
 
         Object pointcuttedTestBean = appContext.getBean("pointcutted-test-bean");
         assertTrue(ProxyUtil.isProxyMember(
-                pointcuttedTestBean.getClass().getMethod("getTargetSource"), pointcuttedTestBean));
+            pointcuttedTestBean.getClass().getMethod("getTargetSource"), pointcuttedTestBean));
 
         Object pointcuttedTestSubBean = appContext.getBean("pointcutted-test-sub-bean");
         assertFalse(ProxyUtil.isProxyMember(
-                pointcuttedTestSubBean.getClass().getConstructor(), pointcuttedTestSubBean));
+            pointcuttedTestSubBean.getClass().getConstructor(), pointcuttedTestSubBean));
 
         Object testAspect = appContext.getBean("test-aspect");
         assertFalse(ProxyUtil.isProxyMember(
-                testAspect.getClass().getMethod("setExposeProxy", boolean.class), testAspect));
+            testAspect.getClass().getMethod("setExposeProxy", boolean.class), testAspect));
     }
 }
diff --git a/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java b/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java
index afcd262..970c3ee 100644
--- a/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/spring/interceptor/ActionAutowiringInterceptorTest.java
@@ -18,8 +18,13 @@
  */
 package com.opensymphony.xwork2.spring.interceptor;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.TestBean;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.springframework.context.ApplicationContext;
 import org.springframework.web.context.WebApplicationContext;
 import org.springframework.web.context.support.StaticWebApplicationContext;
@@ -52,10 +57,10 @@
     }
 
     public void testSetAutowireType() throws Exception {
-        XmlConfigurationProvider prov = new XmlConfigurationProvider("xwork-default.xml");
+        XmlConfigurationProvider prov = new StrutsXmlConfigurationProvider("xwork-default.xml");
         container.inject(prov);
         prov.setThrowExceptionOnDuplicateBeans(false);
-        XmlConfigurationProvider c = new XmlConfigurationProvider("com/opensymphony/xwork2/spring/xwork-autowire.xml");
+        XmlConfigurationProvider c = new StrutsXmlConfigurationProvider("com/opensymphony/xwork2/spring/xwork-autowire.xml");
         container.inject(c);
         loadConfigurationProviders(c, prov);
 
diff --git a/core/src/test/java/com/opensymphony/xwork2/util/ClassLoaderUtilTest.java b/core/src/test/java/com/opensymphony/xwork2/util/ClassLoaderUtilTest.java
index b3ef289..90cc5f1 100644
--- a/core/src/test/java/com/opensymphony/xwork2/util/ClassLoaderUtilTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/util/ClassLoaderUtilTest.java
@@ -39,26 +39,26 @@
     }
     
     public void testGetResources_Multiple() throws IOException {
-        Iterator<URL> i = ClassLoaderUtil.getResources("xwork-1.0.dtd", ClassLoaderUtilTest.class, false);
+        Iterator<URL> i = ClassLoaderUtil.getResources("struts-2.0.dtd", ClassLoaderUtilTest.class, false);
         assertNotNull(i);
         
         assertTrue(i.hasNext());
         URL url = i.next();
-        assertTrue(url.toString().endsWith("xwork-1.0.dtd"));
+        assertTrue(url.toString().endsWith("struts-2.0.dtd"));
         url = i.next();
-        assertTrue(url.toString().endsWith("xwork-1.0.dtd"));
+        assertTrue(url.toString().endsWith("struts-2.0.dtd"));
         assertTrue(!i.hasNext());
     }
 
     public void testGetResources_Aggregate() throws IOException {
-        Iterator<URL> i = ClassLoaderUtil.getResources("xwork-1.0.dtd", ClassLoaderUtilTest.class, true);
+        Iterator<URL> i = ClassLoaderUtil.getResources("struts-2.0.dtd", ClassLoaderUtilTest.class, true);
         assertNotNull(i);
 
         assertTrue(i.hasNext());
         URL url = i.next();
-        assertTrue(url.toString().endsWith("xwork-1.0.dtd"));
+        assertTrue(url.toString().endsWith("struts-2.0.dtd"));
         url = i.next();
-        assertTrue(url.toString().endsWith("xwork-1.0.dtd"));
+        assertTrue(url.toString().endsWith("struts-2.0.dtd"));
         assertTrue(!i.hasNext());
     }
 
diff --git a/core/src/test/java/com/opensymphony/xwork2/util/MyBeanActionTest.java b/core/src/test/java/com/opensymphony/xwork2/util/MyBeanActionTest.java
index ab72a9f..5921db0 100644
--- a/core/src/test/java/com/opensymphony/xwork2/util/MyBeanActionTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/util/MyBeanActionTest.java
@@ -22,10 +22,10 @@
 import com.opensymphony.xwork2.ActionProxy;
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
-import java.util.Map;
 
 /**
  * <code>MyBeanActionTest</code>
@@ -133,7 +133,7 @@
         super.setUp();
 
         // ensure we're using the default configuration, not simple config
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/util/StrutsLocalizedTextProviderTest.java b/core/src/test/java/com/opensymphony/xwork2/util/StrutsLocalizedTextProviderTest.java
index 251217a..aef469d 100644
--- a/core/src/test/java/com/opensymphony/xwork2/util/StrutsLocalizedTextProviderTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/util/StrutsLocalizedTextProviderTest.java
@@ -19,10 +19,19 @@
 package com.opensymphony.xwork2.util;
 
 import com.mockobjects.dynamic.Mock;
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ActionSupport;
+import com.opensymphony.xwork2.LocalizedTextProvider;
+import com.opensymphony.xwork2.ModelDriven;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.test.ModelDrivenAction2;
 import com.opensymphony.xwork2.test.TestBean2;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -37,52 +46,52 @@
  *
  * @author jcarreira
  * @author tm_jee
- * 
  * @version $Date$ $Id$
  */
 public class StrutsLocalizedTextProviderTest extends XWorkTestCase {
 
     private LocalizedTextProvider localizedTextProvider;
-    
-	public void testNpeWhenClassIsPrimitive() throws Exception {
-		ValueStack stack = ActionContext.getContext().getValueStack();
-		stack.push(new MyObject());
-		String result = localizedTextProvider.findText(MyObject.class, "someObj.someI18nKey", Locale.ENGLISH, "default message", null, stack);
-		System.out.println(result);
-	}
-	
-	public static class MyObject extends ActionSupport {
-		public boolean getSomeObj() {
-			return true;
-		}
-	}
-	
-	public void testActionGetTextWithNullObject() throws Exception {
-		MyAction action = new MyAction();
+
+    public void testNpeWhenClassIsPrimitive() throws Exception {
+        ValueStack stack = ActionContext.getContext().getValueStack();
+        stack.push(new MyObject());
+        String result = localizedTextProvider.findText(MyObject.class, "someObj.someI18nKey", Locale.ENGLISH, "default message", null, stack);
+        System.out.println(result);
+    }
+
+    public static class MyObject extends ActionSupport {
+        public boolean getSomeObj() {
+            return true;
+        }
+    }
+
+    public void testActionGetTextWithNullObject() throws Exception {
+        MyAction action = new MyAction();
         container.inject(action);
-		
-		Mock mockActionInvocation = new Mock(ActionInvocation.class);
+
+        Mock mockActionInvocation = new Mock(ActionInvocation.class);
         mockActionInvocation.expectAndReturn("getAction", action);
         ActionContext.getContext()
             .withActionInvocation((ActionInvocation) mockActionInvocation.proxy())
-		    .getValueStack().push(action);
-		
-		String message = action.getText("barObj.title");
-		assertEquals("Title:", message);
-	}
-	
-	
-	public static class MyAction extends ActionSupport {
-		private Bar testBean2;
-		
-		public Bar getBarObj() {
-			return testBean2;
-		}
-		public void setBarObj(Bar testBean2) {
-			this.testBean2 = testBean2;
-		}
-	}
-	
+            .getValueStack().push(action);
+
+        String message = action.getText("barObj.title");
+        assertEquals("Title:", message);
+    }
+
+
+    public static class MyAction extends ActionSupport {
+        private Bar testBean2;
+
+        public Bar getBarObj() {
+            return testBean2;
+        }
+
+        public void setBarObj(Bar testBean2) {
+            this.testBean2 = testBean2;
+        }
+    }
+
     public void testActionGetText() throws Exception {
         ModelDrivenAction2 action = new ModelDrivenAction2();
         container.inject(action);
@@ -207,7 +216,7 @@
     public void testLocalizedDateFormatIsUsed() throws ParseException {
         localizedTextProvider.addDefaultResourceBundle("com/opensymphony/xwork2/util/LocalizedTextUtilTest");
         Date date = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US).parse("01/01/2015");
-        Object[] params = new Object[]{ date };
+        Object[] params = new Object[]{date};
         String usDate = localizedTextProvider.findDefaultText("test.format.date", Locale.US, params);
         String germanDate = localizedTextProvider.findDefaultText("test.format.date", Locale.GERMANY, params);
         assertEquals(usDate, "1/1/15");
@@ -253,26 +262,26 @@
 
     /**
      * Unit test to confirm expected behaviour of "clearing methods" provided to
-     *   StrutsLocalizedTextProvider (from AbstractLocalizedTextProvider).
+     * StrutsLocalizedTextProvider (from AbstractLocalizedTextProvider).
      *
      * @since 2.6
      */
     public void testLocalizedTextProviderClearingMethods() {
         TestStrutsLocalizedTextProvider testStrutsLocalizedTextProvider = new TestStrutsLocalizedTextProvider();
         assertTrue("testStrutsLocalizedTextProvider not instance of AbstractLocalizedTextProvider ?",
-                testStrutsLocalizedTextProvider instanceof AbstractLocalizedTextProvider);
+            testStrutsLocalizedTextProvider instanceof AbstractLocalizedTextProvider);
         assertEquals("testStrutsLocalizedTextProvider starting default bundle map size not 0 before any retrievals ?",
-                0, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            0, testStrutsLocalizedTextProvider.currentBundlesMapSize());
 
         // Access the two default bundles to populate their cache entries and test bundle map size.
         ResourceBundle tempBundle = testStrutsLocalizedTextProvider.findResourceBundle(
-                TestStrutsLocalizedTextProvider.XWORK_MESSAGES_BUNDLE, Locale.ENGLISH);
+            TestStrutsLocalizedTextProvider.XWORK_MESSAGES_BUNDLE, Locale.ENGLISH);
         assertNotNull("XWORK_MESSAGES_BUNDLE retrieval null ?", tempBundle);
         tempBundle = testStrutsLocalizedTextProvider.findResourceBundle(
-                TestStrutsLocalizedTextProvider.STRUTS_MESSAGES_BUNDLE, Locale.ENGLISH);
+            TestStrutsLocalizedTextProvider.STRUTS_MESSAGES_BUNDLE, Locale.ENGLISH);
         assertNotNull("STRUTS_MESSAGES_BUNDLE retrieval null ?", tempBundle);
         assertEquals("testStrutsLocalizedTextProvider bundle map size not 2 after retrievals ?",
-                2, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            2, testStrutsLocalizedTextProvider.currentBundlesMapSize());
 
         // Add and then access four test bundles to populate their cache entries and test bundle map size.
         testStrutsLocalizedTextProvider.addDefaultResourceBundle("com/opensymphony/xwork2/util/LocalizedTextUtilTest");
@@ -280,39 +289,39 @@
         testStrutsLocalizedTextProvider.addDefaultResourceBundle("com/opensymphony/xwork2/SimpleAction");
         testStrutsLocalizedTextProvider.addDefaultResourceBundle("com/opensymphony/xwork2/test");
         tempBundle = testStrutsLocalizedTextProvider.findResourceBundle(
-                "com/opensymphony/xwork2/util/LocalizedTextUtilTest", Locale.ENGLISH);
+            "com/opensymphony/xwork2/util/LocalizedTextUtilTest", Locale.ENGLISH);
         assertNotNull("com/opensymphony/xwork2/util/LocalizedTextUtilTest retrieval null ?", tempBundle);
         tempBundle = testStrutsLocalizedTextProvider.findResourceBundle(
-                "com/opensymphony/xwork2/util/FindMe", Locale.ENGLISH);
+            "com/opensymphony/xwork2/util/FindMe", Locale.ENGLISH);
         assertNotNull("com/opensymphony/xwork2/util/FindMe retrieval null ?", tempBundle);
         tempBundle = testStrutsLocalizedTextProvider.findResourceBundle(
-                "com/opensymphony/xwork2/SimpleAction", Locale.ENGLISH);
+            "com/opensymphony/xwork2/SimpleAction", Locale.ENGLISH);
         assertNotNull("com/opensymphony/xwork2/SimpleAction retrieval null ?", tempBundle);
         tempBundle = testStrutsLocalizedTextProvider.findResourceBundle(
-                "com/opensymphony/xwork2/test", Locale.ENGLISH);
+            "com/opensymphony/xwork2/test", Locale.ENGLISH);
         assertNotNull("com/opensymphony/xwork2/test retrieval null ?", tempBundle);
         assertEquals("testStrutsLocalizedTextProvider bundle map size not 6 after retrievals ?",
-                6, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            6, testStrutsLocalizedTextProvider.currentBundlesMapSize());
 
         // Expect the call to be ineffective due to deprecation and change to a "no-op" (but shouldn't throw an Exception or cause failure).
         testStrutsLocalizedTextProvider.callClearBundleNoLocale("com/opensymphony/xwork2/test");
         assertEquals("testStrutsLocalizedTextProvider bundle map size not 6 after non-locale clear call ?",
-                6, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            6, testStrutsLocalizedTextProvider.currentBundlesMapSize());
 
         // Expect the call to function with bundle name + locale.  Remove all four of the non-default
         //   bundles and confirm the bundle map size changes.
         testStrutsLocalizedTextProvider.callClearBundleWithLocale("com/opensymphony/xwork2/test", Locale.ENGLISH);
         assertEquals("testStrutsLocalizedTextProvider bundle map size not 5 after locale clear call ?",
-                5, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            5, testStrutsLocalizedTextProvider.currentBundlesMapSize());
         testStrutsLocalizedTextProvider.callClearBundleWithLocale("com/opensymphony/xwork2/SimpleAction", Locale.ENGLISH);
         assertEquals("testStrutsLocalizedTextProvider bundle map size not 4 after locale clear call ?",
-                4, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            4, testStrutsLocalizedTextProvider.currentBundlesMapSize());
         testStrutsLocalizedTextProvider.callClearBundleWithLocale("com/opensymphony/xwork2/util/FindMe", Locale.ENGLISH);
         assertEquals("testStrutsLocalizedTextProvider bundle map size not 3 after locale clear call ?",
-                3, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            3, testStrutsLocalizedTextProvider.currentBundlesMapSize());
         testStrutsLocalizedTextProvider.callClearBundleWithLocale("com/opensymphony/xwork2/util/LocalizedTextUtilTest", Locale.ENGLISH);
         assertEquals("testStrutsLocalizedTextProvider bundle map size not 2 after locale clear call ?",
-                2, testStrutsLocalizedTextProvider.currentBundlesMapSize());
+            2, testStrutsLocalizedTextProvider.currentBundlesMapSize());
 
         // Confirm the missing bundles cache clearing method does not produce any Exceptions or failures.
         testStrutsLocalizedTextProvider.callClearMissingBundlesCache();
@@ -321,12 +330,12 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
 
         localizedTextProvider = container.getInstance(LocalizedTextProvider.class);
-        
+
         ActionContext.getContext().withLocale(Locale.US);
     }
 
@@ -345,7 +354,7 @@
 
         public void callClearBundleNoLocale(String bundleName) {
             super.clearBundle(bundleName);
-}
+        }
 
         public void callClearBundleWithLocale(String bundleName, Locale locale) {
             super.clearBundle(bundleName, locale);
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeFieldValidatorTest.java
index de9a944..41da48f 100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeFieldValidatorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeFieldValidatorTest.java
@@ -29,9 +29,9 @@
 import com.opensymphony.xwork2.interceptor.ValidationAware;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
-import java.lang.reflect.Array;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
@@ -306,7 +306,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-default.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-default.xml");
         container.inject(provider);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
         val = new DoubleRangeFieldValidator();
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/IntRangeValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/IntRangeValidatorTest.java
index f11870d..fefece9 100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/IntRangeValidatorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/IntRangeValidatorTest.java
@@ -20,10 +20,11 @@
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.interceptor.ValidationAware;
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.MockConfigurationProvider;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.interceptor.ValidationAware;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
@@ -63,7 +64,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(provider);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/LongRangeValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/LongRangeValidatorTest.java
index 381a1e2..4a24ca8 100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/LongRangeValidatorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/LongRangeValidatorTest.java
@@ -20,10 +20,11 @@
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.interceptor.ValidationAware;
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.MockConfigurationProvider;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.interceptor.ValidationAware;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
@@ -60,7 +61,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(provider);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/ModelDrivenValidationTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/ModelDrivenValidationTest.java
index b29b819..af59461 100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/ModelDrivenValidationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/ModelDrivenValidationTest.java
@@ -18,8 +18,13 @@
  */
 package com.opensymphony.xwork2.validator;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ModelDrivenAction;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
@@ -31,7 +36,7 @@
  * ModelDrivenValidationTest
  *
  * @author Jason Carreira
- *         Created Oct 1, 2003 10:08:25 AM
+ * Created Oct 1, 2003 10:08:25 AM
  */
 public class ModelDrivenValidationTest extends XWorkTestCase {
 
@@ -42,7 +47,7 @@
         Map<String, Object> context = new HashMap<>();
         context.put(ActionContext.PARAMETERS, HttpParameters.create(params).build());
 
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-sample.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-sample.xml");
         container.inject(provider);
         loadConfigurationProviders(provider);
         ActionProxy proxy = actionProxyFactory.createActionProxy(null, "TestModelDrivenValidation", null, context);
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/ShortRangeValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/ShortRangeValidatorTest.java
index 9ed534d..abada8f 100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/ShortRangeValidatorTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/ShortRangeValidatorTest.java
@@ -20,10 +20,11 @@
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.interceptor.ValidationAware;
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.MockConfigurationProvider;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.interceptor.ValidationAware;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.HashMap;
@@ -60,7 +61,7 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(provider);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java
index c866ee4..503d230 100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java
@@ -18,15 +18,24 @@
  */
 package com.opensymphony.xwork2.validator;
 
-import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.SimpleAction;
+import com.opensymphony.xwork2.TextProviderFactory;
+import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.MockConfigurationProvider;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.interceptor.ValidationAware;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.validator.validators.ValidatorSupport;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
-import java.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 
 
 /**
@@ -229,14 +238,14 @@
     public void testInitializable() throws Exception {
         ValidatorFactory validatorFactory = container.getInstance(ValidatorFactory.class);
         assertEquals("com.opensymphony.xwork2.validator.validators.RequiredFieldValidator",
-                validatorFactory.lookupRegisteredValidatorType("requiredAnother"));
+            validatorFactory.lookupRegisteredValidatorType("requiredAnother"));
     }
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
 
-        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-test-beans.xml");
+        XmlConfigurationProvider provider = new StrutsXmlConfigurationProvider("xwork-test-beans.xml");
         container.inject(provider);
         loadConfigurationProviders(provider, new MockConfigurationProvider());
     }
diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/ValidatorAnnotationTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/ValidatorAnnotationTest.java
index 08cab70..100521a 100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/ValidatorAnnotationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/ValidatorAnnotationTest.java
@@ -20,9 +20,10 @@
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.interceptor.ValidationAware;
 import com.opensymphony.xwork2.XWorkTestCase;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.interceptor.ValidationAware;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.apache.struts2.dispatcher.HttpParameters;
 
 import java.util.Collection;
@@ -127,9 +128,9 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        XmlConfigurationProvider provider1 = new XmlConfigurationProvider("xwork-default.xml");
+        XmlConfigurationProvider provider1 = new StrutsXmlConfigurationProvider("xwork-default.xml");
         container.inject(provider1);
-        XmlConfigurationProvider provider2 = new XmlConfigurationProvider("xwork-test-validation.xml");
+        XmlConfigurationProvider provider2 = new StrutsXmlConfigurationProvider("xwork-test-validation.xml");
         container.inject(provider2);
         loadConfigurationProviders(provider1, provider2);
     }
diff --git a/core/src/test/java/org/apache/struts2/factory/PrefixBasedActionProxyFactoryTest.java b/core/src/test/java/org/apache/struts2/factory/PrefixBasedActionProxyFactoryTest.java
index 109a61f..01d2bd4 100644
--- a/core/src/test/java/org/apache/struts2/factory/PrefixBasedActionProxyFactoryTest.java
+++ b/core/src/test/java/org/apache/struts2/factory/PrefixBasedActionProxyFactoryTest.java
@@ -23,7 +23,6 @@
 import com.opensymphony.xwork2.DefaultActionProxyFactory;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
-import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.inject.ContainerBuilder;
 import com.opensymphony.xwork2.inject.Context;
 import com.opensymphony.xwork2.inject.Factory;
@@ -32,6 +31,7 @@
 import com.opensymphony.xwork2.test.StubConfigurationProvider;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
 import org.apache.struts2.StrutsInternalTestCase;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.Collections;
 import java.util.Map;
@@ -43,63 +43,65 @@
     public void testDifferentPrefixes() throws Exception {
         initFactory("/ns1:prefix1,/ns2:prefix2");
 
-        ActionProxy proxy1 = factory.createActionProxy("/ns1", "", "", Collections.<String, Object>emptyMap(), false, true);
+        ActionProxy proxy1 = factory.createActionProxy("/ns1", "", "", Collections.emptyMap(), false, true);
         assertTrue(proxy1 instanceof Prefix1ActionProxy);
 
-        ActionProxy proxy2 = factory.createActionProxy("/ns2", "", "", Collections.<String, Object>emptyMap(), false, true);
+        ActionProxy proxy2 = factory.createActionProxy("/ns2", "", "", Collections.emptyMap(), false, true);
         assertTrue(proxy2 instanceof Prefix2ActionProxy);
     }
 
     public void testFallbackToDefault() throws Exception {
         initFactory("/ns1:prefix1");
 
-        ActionProxy proxy1 = factory.createActionProxy("/ns1", "", "", Collections.<String, Object>emptyMap(), false, true);
+        ActionProxy proxy1 = factory.createActionProxy("/ns1", "", "", Collections.emptyMap(), false, true);
         assertTrue(proxy1 instanceof Prefix1ActionProxy);
 
-        ActionProxy proxy2 = factory.createActionProxy("", "Foo", "", Collections.<String, Object>emptyMap(), false, true);
+        ActionProxy proxy2 = factory.createActionProxy("", "Foo", "", Collections.emptyMap(), false, true);
         assertTrue(proxy2 instanceof StrutsActionProxy);
     }
 
     public void testEmptyPrefix() throws Exception {
         initFactory(":prefix1");
 
-        ActionProxy proxy1 = factory.createActionProxy("/ns1", "", "", Collections.<String, Object>emptyMap(), false, true);
+        ActionProxy proxy1 = factory.createActionProxy("/ns1", "", "", Collections.emptyMap(), false, true);
         assertTrue(proxy1 instanceof Prefix1ActionProxy);
 
-        ActionProxy proxy2 = factory.createActionProxy("/ns2", "", "", Collections.<String, Object>emptyMap(), false, true);
+        ActionProxy proxy2 = factory.createActionProxy("/ns2", "", "", Collections.emptyMap(), false, true);
         assertTrue(proxy2 instanceof Prefix1ActionProxy);
     }
 
     @Override
     public void setUp() throws Exception {
         ConfigurationProvider[] providers = new ConfigurationProvider[]{
-                new XmlConfigurationProvider("xwork-sample.xml"),
-                new StubConfigurationProvider() {
-                    @Override
-                    public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException {
-                        builder.factory(ActionProxyFactory.class, "prefix1", new Factory() {
-                            public Object create(Context context) throws Exception {
-                                return new Prefix1Factory();
-                            }
-                            public Class type() {
-                                return Prefix1Factory.class;
-                            }
-                        }, Scope.SINGLETON);
-                    }
-                },
-                new StubConfigurationProvider() {
-                    @Override
-                    public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException {
-                        builder.factory(ActionProxyFactory.class, "prefix2", new Factory() {
-                            public Object create(Context context) throws Exception {
-                                return new Prefix2Factory();
-                            }
-                            public Class type() {
-                                return Prefix2Factory.class;
-                            }
-                        }, Scope.SINGLETON);
-                    }
+            new StrutsXmlConfigurationProvider("xwork-sample.xml"),
+            new StubConfigurationProvider() {
+                @Override
+                public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException {
+                    builder.factory(ActionProxyFactory.class, "prefix1", new Factory() {
+                        public Object create(Context context) throws Exception {
+                            return new Prefix1Factory();
+                        }
+
+                        public Class type() {
+                            return Prefix1Factory.class;
+                        }
+                    }, Scope.SINGLETON);
                 }
+            },
+            new StubConfigurationProvider() {
+                @Override
+                public void register(ContainerBuilder builder, LocatableProperties props) throws ConfigurationException {
+                    builder.factory(ActionProxyFactory.class, "prefix2", new Factory() {
+                        public Object create(Context context) throws Exception {
+                            return new Prefix2Factory();
+                        }
+
+                        public Class type() {
+                            return Prefix2Factory.class;
+                        }
+                    }, Scope.SINGLETON);
+                }
+            }
         };
 
         loadConfigurationProviders(providers);
diff --git a/core/src/test/java/org/apache/struts2/interceptor/FetchMetadataInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/FetchMetadataInterceptorTest.java
index 2249077..7d7c4bd 100644
--- a/core/src/test/java/org/apache/struts2/interceptor/FetchMetadataInterceptorTest.java
+++ b/core/src/test/java/org/apache/struts2/interceptor/FetchMetadataInterceptorTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.struts2.interceptor;
 
-
 import static org.apache.struts2.interceptor.ResourceIsolationPolicy.DEST_EMBED;
 import static org.apache.struts2.interceptor.ResourceIsolationPolicy.DEST_OBJECT;
 import static org.apache.struts2.interceptor.ResourceIsolationPolicy.DEST_SCRIPT;
@@ -43,6 +42,7 @@
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
 import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletResponse;
 
@@ -155,7 +155,7 @@
         // Perform a multi-step test to confirm (indirectly) that the method parameter injection of setExemptedPaths() for
         // the FetchMetadataInterceptor is functioning as expected, when configured appropriately.
         // Ensure we're using the specific test configuration, not the default simple configuration.
-        XmlConfigurationProvider configurationProvider = new XmlConfigurationProvider("struts-testing.xml");
+        XmlConfigurationProvider configurationProvider = new StrutsXmlConfigurationProvider("struts-testing.xml");
         container.inject(configurationProvider);
         loadConfigurationProviders(configurationProvider);
 
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder1/xwork-test-load-order.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder1/xwork-test-load-order.xml
index 5b0e6e8..e667373 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder1/xwork-test-load-order.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder1/xwork-test-load-order.xml
@@ -19,10 +19,9 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.1.3//EN"
-    "http://struts.apache.org/dtds/xwork-2.1.3.dtd"
- >
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
 
-<xwork order="2">
-</xwork>
+<struts order="2">
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder2/xwork-test-load-order.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder2/xwork-test-load-order.xml
index 6cb1ef2..8cbf2d7 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder2/xwork-test-load-order.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder2/xwork-test-load-order.xml
@@ -19,10 +19,9 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.1.3//EN"
-    "http://struts.apache.org/dtds/xwork-2.1.3.dtd"
- >
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
 
-<xwork order="3">
-</xwork>
+<struts order="3">
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder3/xwork-test-load-order.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder3/xwork-test-load-order.xml
index 61653ae..03d16f9 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder3/xwork-test-load-order.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/loadorder3/xwork-test-load-order.xml
@@ -19,10 +19,9 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.1.3//EN"
-    "http://struts.apache.org/dtds/xwork-2.1.3.dtd"
- >
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
 
-<xwork order="1">
-</xwork>
+<struts order="1">
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork- test.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork- test.xml
index 50bc3da..456a725 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork- test.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork- test.xml
@@ -19,13 +19,11 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
-	<include file="xwork-test-beans.xml" />
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <include file="xwork-test-beans.xml"/>
     <package name="default">
         <result-types>
             <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult" default="true"/>
@@ -55,7 +53,7 @@
             <param name="bar">23</param>
             <param name="testXW412">foo.jspa?fooID=${fooID}&amp;something=bar</param>
             <param name="testXW412Again">
-            		something
+                something
             </param>
             <param name="testForXW171"></param>
         </action>
@@ -63,19 +61,19 @@
         <action name="Foo" class="com.opensymphony.xwork2.SimpleAction">
             <param name="foo">18</param>
             <param name="bar">24</param>
-            <result name="success" type="mock" />
+            <result name="success" type="mock"/>
             <interceptor-ref name="defaultStack"/>
         </action>
 
         <action name="WildCard" class="com.opensymphony.xwork2.SimpleAction">
-            <result name="*" type="mock" />
+            <result name="*" type="mock"/>
             <interceptor-ref name="defaultStack"/>
         </action>
 
         <action name="FooBar" class="com.opensymphony.xwork2.SimpleAction">
             <param name="foo">18</param>
             <param name="bar">24</param>
-            <result name="success" type="mock" />
+            <result name="success" type="mock"/>
             <interceptor-ref name="defaultStack"/>
             <exception-mapping name="runtime" exception="java.lang.RuntimeException" result="exception"/>
         </action>
@@ -99,4 +97,4 @@
         </action>
 
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package-2.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package-2.xml
index 7e7b7ee..bf6df3e 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package-2.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package-2.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="namespace5" extends="namespace4" namespace="/namespace5">
         <action name="action5" class="com.opensymphony.xwork2.SimpleAction">
             <result name="success" type="chain"/>
@@ -32,4 +30,4 @@
         </action>
     </package>
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package.xml
index d45f8d6..06d213d 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-after-package.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="namespace4" extends="namespace1" namespace="/namespace4">
         <interceptors>
             <interceptor name="staticParams" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/>
@@ -38,4 +36,4 @@
 
 
     <include file="com/opensymphony/xwork2/config/providers/xwork-include-after-package-2.xml" />
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package-2.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package-2.xml
index 0e4a0ef..aeae5a6 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package-2.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package-2.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="namespace2" extends="namespace1" namespace="/namespace2">
         <action name="action2" class="com.opensymphony.xwork2.SimpleAction">
             <result name="success" type="chain"/>
@@ -32,4 +30,4 @@
         </action>
     </package>
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package.xml
index 67a08b4..c68115b 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-before-package.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
 
     <package name="namespace1" extends="default" namespace="/namespace1">
@@ -40,4 +38,4 @@
 
     <include file="com/opensymphony/xwork2/config/providers/xwork-include-before-package-2.xml" />
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-parent.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-parent.xml
index 852a7fe..dbd7795 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-parent.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-include-parent.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-default.xml" />
 
     <package name="default">
@@ -40,4 +38,4 @@
 
 
     <include file="com/opensymphony/xwork2/config/providers/xwork-include-after-package.xml" />
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-action-invalid.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-action-invalid.xml
index efe4393..53b9a2f 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-action-invalid.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-action-invalid.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default">
 
@@ -41,4 +39,4 @@
         </action>
 
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions-packagedefaultclassref.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions-packagedefaultclassref.xml
index 6b0008b..c2717be 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions-packagedefaultclassref.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions-packagedefaultclassref.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="default">
 
         <result-types>
@@ -57,4 +55,4 @@
             <param name="testForXW171"></param>
         </action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions.xml
index 50bc3da..456a725 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-actions.xml
@@ -19,13 +19,11 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
-	<include file="xwork-test-beans.xml" />
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <include file="xwork-test-beans.xml"/>
     <package name="default">
         <result-types>
             <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult" default="true"/>
@@ -55,7 +53,7 @@
             <param name="bar">23</param>
             <param name="testXW412">foo.jspa?fooID=${fooID}&amp;something=bar</param>
             <param name="testXW412Again">
-            		something
+                something
             </param>
             <param name="testForXW171"></param>
         </action>
@@ -63,19 +61,19 @@
         <action name="Foo" class="com.opensymphony.xwork2.SimpleAction">
             <param name="foo">18</param>
             <param name="bar">24</param>
-            <result name="success" type="mock" />
+            <result name="success" type="mock"/>
             <interceptor-ref name="defaultStack"/>
         </action>
 
         <action name="WildCard" class="com.opensymphony.xwork2.SimpleAction">
-            <result name="*" type="mock" />
+            <result name="*" type="mock"/>
             <interceptor-ref name="defaultStack"/>
         </action>
 
         <action name="FooBar" class="com.opensymphony.xwork2.SimpleAction">
             <param name="foo">18</param>
             <param name="bar">24</param>
-            <result name="success" type="mock" />
+            <result name="success" type="mock"/>
             <interceptor-ref name="defaultStack"/>
             <exception-mapping name="runtime" exception="java.lang.RuntimeException" result="exception"/>
         </action>
@@ -99,4 +97,4 @@
         </action>
 
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowed-methods.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowed-methods.xml
index 394537e..17b33ab 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowed-methods.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-allowed-methods.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.5//EN"
-    "http://struts.apache.org/dtds/xwork-2.5.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="default" strict-method-invocation="false">
         <global-allowed-methods>input,cancel</global-allowed-methods>
         <action name="Default">
@@ -68,4 +66,4 @@
             <allowed-methods>foo,bar</allowed-methods>
         </action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-bad-inheritance.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-bad-inheritance.xml
index 92e1b93..d271a1c 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-bad-inheritance.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-bad-inheritance.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default" />
 
@@ -35,4 +33,4 @@
     <package name="anotherCircularPackage" extends="anotherCircularPackage2"/>
     
     <package name="anotherCircularPackage2" extends="anotherCircularPackage"/>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-basic-packages.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-basic-packages.xml
index 75aee6f..ccd8aed 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-basic-packages.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-basic-packages.xml
@@ -19,16 +19,14 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <include file="xwork-test-beans.xml"/>
+    <package name="default"/>
 
-<xwork>
-	<include file="xwork-test-beans.xml" />
-    <package name="default" />
+    <package name="namespacepkg" namespace="/namespace/set"/>
 
-    <package name="namespacepkg" namespace="/namespace/set" />
-
-    <package name="abstractpkg" abstract="true" />
-</xwork>
+    <package name="abstractpkg" abstract="true"/>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-default-package.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-default-package.xml
index 4f13c71..2c566d2 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-default-package.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-default-package.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default" />
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-defaultclassref-package.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-defaultclassref-package.xml
index d352213..adc41eb 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-defaultclassref-package.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-defaultclassref-package.xml
@@ -19,14 +19,12 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="hasDefaultClassRef">
-    	<default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
+        <default-class-ref class="com.opensymphony.xwork2.ActionSupport"/>
     </package>
     <package name="noDefaultClassRef"/>
-</xwork>
\ No newline at end of file
+</struts>
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-envs-substitution.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-envs-substitution.xml
index 47c2d94..03fe2b7 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-envs-substitution.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-envs-substitution.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.5//EN"
-    "http://struts.apache.org/dtds/xwork-2.5.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 
     <constant name="foo" value="bar"/>
 
@@ -43,4 +41,4 @@
 
     <constant name="struts.devMode" value="${env.STRUTS_DEV_MODE:false}"/>
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-exception-mappings.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-exception-mappings.xml
index b7f955e..71f6070 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-exception-mappings.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-exception-mappings.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default">
         <result-types>
@@ -51,4 +49,4 @@
         </action>
 
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-global-result-inheritence.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-global-result-inheritence.xml
index db46c18..461c2e1 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-global-result-inheritence.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-global-result-inheritence.xml
@@ -19,50 +19,48 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
-	<include file="xwork-test-beans.xml" />
-	<package name="parent" namespace="/base">
-		<result-types>
-			<result-type name="mockResult" class="com.opensymphony.xwork2.mock.MockResult" />
-		</result-types>
-		<global-results>
-			<result name="mockResult1" type="mockResult">
-				<param name="identity">p1</param>
-			</result>
-			<result name="mockResult2" type="mockResult">
-				<param name="identity">p2</param>
-			</result>
-		</global-results>
-		<action name="parentAction" />
-	</package>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <include file="xwork-test-beans.xml"/>
+    <package name="parent" namespace="/base">
+        <result-types>
+            <result-type name="mockResult" class="com.opensymphony.xwork2.mock.MockResult"/>
+        </result-types>
+        <global-results>
+            <result name="mockResult1" type="mockResult">
+                <param name="identity">p1</param>
+            </result>
+            <result name="mockResult2" type="mockResult">
+                <param name="identity">p2</param>
+            </result>
+        </global-results>
+        <action name="parentAction"/>
+    </package>
 
 
-	<package name="another" namespace="/base">
-		<result-types>
-			<result-type name="anotherMockResult" class="com.opensymphony.xwork2.mock.MockResult" />
-		</result-types>
-		<global-results>
-			<result name="mockResult1" type="anotherMockResult">
-				<param name="identity">a1</param>
-			</result>
-			<result name="mockResult2" type="anotherMockResult">
-				<param name="identity">a2</param>
-			</result>
-		</global-results>
-		<action name="anotherAction" />
-	</package>
+    <package name="another" namespace="/base">
+        <result-types>
+            <result-type name="anotherMockResult" class="com.opensymphony.xwork2.mock.MockResult"/>
+        </result-types>
+        <global-results>
+            <result name="mockResult1" type="anotherMockResult">
+                <param name="identity">a1</param>
+            </result>
+            <result name="mockResult2" type="anotherMockResult">
+                <param name="identity">a2</param>
+            </result>
+        </global-results>
+        <action name="anotherAction"/>
+    </package>
 
-	<package name="child" extends="parent" namespace="/base">
-		<global-results>
-			<result name="mockResult1" type="mockResult">
-				<param name="identity">c1</param>
-			</result>
-		</global-results>
-		<action name="childAction" />
-	</package>
-</xwork>
+    <package name="child" extends="parent" namespace="/base">
+        <global-results>
+            <result name="mockResult1" type="mockResult">
+                <param name="identity">c1</param>
+            </result>
+        </global-results>
+        <action name="childAction"/>
+    </package>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-include-wildcard.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-include-wildcard.xml
index 573d55e..a9ef731 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-include-wildcard.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-include-wildcard.xml
@@ -19,11 +19,9 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.1//EN"
-    "http://struts.apache.org/dtds/xwork-2.1.dtd"
-    >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
   <include file="com/opensymphony/xwork2/config/providers/xwork-include-*.xml"/>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-defaultref.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-defaultref.xml
index 3902c3b..7cde9bc 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-defaultref.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-defaultref.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <!-- this package has a default interceptor ref - so actions with no refs should have the default ref -->
     <package name="default">
         <interceptors>
@@ -48,4 +46,4 @@
             <interceptor-ref name="logging"/>
         </action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-inheritance.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-inheritance.xml
index a20a873..929a018 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-inheritance.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-inheritance.xml
@@ -19,13 +19,11 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
-	<include file="xwork-test-beans.xml" />
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <include file="xwork-test-beans.xml"/>
     <package name="default">
         <interceptors>
             <interceptor name="noop" class="org.apache.struts2.interceptor.NoOpInterceptor"/>
@@ -52,4 +50,4 @@
             </interceptor-stack>
         </interceptors>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-param-overriding.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-param-overriding.xml
index d18d1a4..660f6dc 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-param-overriding.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-param-overriding.xml
@@ -19,11 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd">
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+		"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+		"http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
 	<package name="packageOne">
 		<result-types>
@@ -60,5 +59,5 @@
 			<result name="success" type="mock">test2</result>
 		</action>
 	</package>
-</xwork>    
+</struts>
     
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-params.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-params.xml
index 4943bbc..32c4099 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-params.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-params.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 1.1.1//EN"
-        "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
-        >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default">
         <interceptors>
@@ -55,4 +53,4 @@
         </action>
     </package>
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-stack-param-overriding.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-stack-param-overriding.xml
index c9a56f0..d94e4f2 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-stack-param-overriding.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptor-stack-param-overriding.xml
@@ -19,53 +19,55 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd">
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <package name="packageOne">
+        <result-types>
+            <result-type name="mock" class="com.opensymphony.xwork2.mock.MockResult"/>
+        </result-types>
 
-<xwork>
-	<package name="packageOne">
-		<result-types>
-			<result-type name="mock" class="com.opensymphony.xwork2.mock.MockResult" />
-		</result-types>
+        <interceptors>
+            <interceptor name="interceptorOne"
+                         class="com.opensymphony.xwork2.config.providers.InterceptorForTestPurpose"/>
+            <interceptor name="interceptorTwo"
+                         class="com.opensymphony.xwork2.config.providers.InterceptorForTestPurpose"/>
+            <interceptor name="interceptorThree"
+                         class="com.opensymphony.xwork2.config.providers.InterceptorForTestPurpose"/>
 
-		<interceptors>
-			<interceptor name="interceptorOne" class="com.opensymphony.xwork2.config.providers.InterceptorForTestPurpose" />
-			<interceptor name="interceptorTwo" class="com.opensymphony.xwork2.config.providers.InterceptorForTestPurpose" />
-			<interceptor name="interceptorThree" class="com.opensymphony.xwork2.config.providers.InterceptorForTestPurpose" />
+            <interceptor-stack name="stackOne">
+                <interceptor-ref name="interceptorOne"/>
+                <interceptor-ref name="interceptorTwo"/>
+                <interceptor-ref name="interceptorThree"/>
+            </interceptor-stack>
 
-			<interceptor-stack name="stackOne">
-				<interceptor-ref name="interceptorOne" />
-				<interceptor-ref name="interceptorTwo" />
-				<interceptor-ref name="interceptorThree" />
-			</interceptor-stack>
+            <interceptor-stack name="stackTwo">
+                <interceptor-ref name="stackOne"/>
+            </interceptor-stack>
 
-			<interceptor-stack name="stackTwo">
-				<interceptor-ref name="stackOne" />
-			</interceptor-stack>
+            <interceptor-stack name="stackThree">
+                <interceptor-ref name="stackTwo"/>
+            </interceptor-stack>
 
-			<interceptor-stack name="stackThree">
-				<interceptor-ref name="stackTwo" />
-			</interceptor-stack>
+        </interceptors>
 
-		</interceptors>
+        <action name="actionOne">
+            <interceptor-ref name="stackTwo">
+                <param name="stackOne.interceptorOne.paramOne">i1p1</param>
+                <param name="stackOne.interceptorOne.paramTwo">i1p2</param>
+                <param name="stackOne.interceptorTwo.paramOne">i2p1</param>
+            </interceptor-ref>
+            <result name="success" type="mock">test1</result>
+        </action>
 
-		<action name="actionOne">
-			<interceptor-ref name="stackTwo">
-				<param name="stackOne.interceptorOne.paramOne">i1p1</param>
-				<param name="stackOne.interceptorOne.paramTwo">i1p2</param>
-				<param name="stackOne.interceptorTwo.paramOne">i2p1</param>
-			</interceptor-ref>
-			<result name="success" type="mock">test1</result>
-		</action>
-
-		<action name="actionTwo">
-			<interceptor-ref name="stackThree">
-				<param name="stackTwo.stackOne.interceptorThree.paramOne">i3p1</param>
-				<param name="stackTwo.stackOne.interceptorThree.paramTwo">i3p2</param>
-				<param name="stackTwo.stackOne.interceptorTwo.paramTwo">i2p2</param>
-			</interceptor-ref>
-			<result name="success" type="mock">test2</result>
-		</action>
-	</package>
-</xwork>
+        <action name="actionTwo">
+            <interceptor-ref name="stackThree">
+                <param name="stackTwo.stackOne.interceptorThree.paramOne">i3p1</param>
+                <param name="stackTwo.stackOne.interceptorThree.paramTwo">i3p2</param>
+                <param name="stackTwo.stackOne.interceptorTwo.paramTwo">i2p2</param>
+            </interceptor-ref>
+            <result name="success" type="mock">test2</result>
+        </action>
+    </package>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-basic.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-basic.xml
index ac52fc3..6ed804d 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-basic.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-basic.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default">
         <interceptors>
@@ -45,4 +43,4 @@
             </interceptor-stack>
         </interceptors>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-spring.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-spring.xml
index bc6e93b..431926d 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-spring.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-interceptors-spring.xml
@@ -19,16 +19,14 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
-	<include file="xwork-test-beans.xml" />
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <include file="xwork-test-beans.xml"/>
     <package name="default">
         <interceptors>
             <interceptor name="noop" class="noop-interceptor"/>
         </interceptors>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-multilevel.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-multilevel.xml
index 4e44893..7e3f99b 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-multilevel.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-multilevel.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default">
         <result-types>
@@ -62,5 +60,5 @@
         </action>
     </package>
 
-</xwork>
+</struts>
 
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-package-inheritance.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-package-inheritance.xml
index 676a260..b57b546 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-package-inheritance.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-package-inheritance.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default" namespace="/default">
         <action name="default" class="com.opensymphony.xwork2.ActionSupport"/>
@@ -45,4 +43,4 @@
     <package name="multipleInheritance" namespace="/multiple" extends="default,abstractPackage,singleInheritance">
         <action name="multiple" class="com.opensymphony.xwork2.ActionSupport"/>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-reload.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-reload.xml
index ffd5755..142b8eb 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-reload.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-reload.xml
@@ -19,13 +19,11 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.5//EN"
-    "http://struts.apache.org/dtds/xwork-2.5.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 
     <constant name="struts.configuration.xml.reload" value="true" />
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-inheritance.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-inheritance.xml
index 518e232..b526aab 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-inheritance.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-inheritance.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default">
         <result-types>
@@ -44,4 +42,4 @@
             <result name="subMockTypedResult" type="subMock" />
         </action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-names.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-names.xml
index 8d3dca6..e239161 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-names.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-names.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.5//EN"
-    "http://struts.apache.org/dtds/xwork-2.5.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <include file="xwork-test-beans.xml" />
     <package name="default">
         <result-types>
@@ -66,4 +64,4 @@
             <result name="input" />
         </action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-types.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-types.xml
index 68709c2..6763ea6 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-types.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-result-types.xml
@@ -19,55 +19,54 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC 
-	"-//Apache Struts//XWork 1.1.1//EN"
-	"http://struts.apache.org/dtds/xwork-1.1.1.dtd">
- 
-<xwork>
-    <include file="xwork-test-beans.xml" />
-	<package name="xworkResultTypesTestPackage1">
-		<result-types>
-			<result-type name="result1" class="com.opensymphony.xwork2.mock.MockResult" >
-				<param name="param1">value1</param>
-				<param name="param2">value2</param>
-				<param name="param3">value3</param>
-			</result-type>
-			<result-type name="result2" class="com.opensymphony.xwork2.mock.MockResult">
-				<param name="paramA">valueA</param>
-				<param name="paramB">valueB</param>
-			</result-type>
-		</result-types>
-	</package>
-	
-	
-	<package name="xworkResultTypesTestPackage2">
-		<result-types>
-			<result-type name="result1" class="com.opensymphony.xwork2.mock.MockResult" >
-				<param name="param1">value1</param>
-				<param name="param2">value2</param>
-				<param name="param3">value3</param>
-			</result-type>
-			<result-type name="result2" class="com.opensymphony.xwork2.mock.MockResult">
-				<param name="paramA">valueA</param>
-				<param name="paramB">valueB</param>
-			</result-type>
-		</result-types>
-		
-		<action name="action1">
-			<result name="success" type="result1">
-				<param name="param1">newValue1</param>
-				<param name="param3">newValue3</param>
-				<param name="param10">value10</param>
-				<param name="param11">value11</param>
-			</result>
-		</action>
-		
-		<action name="action2">
-			<result name="success" type="result2">
-				<param name="paramB">newValueB</param>
-				<param name="paramZ">valueZ</param>
-			</result>
-		</action>
-	</package>
-	
-</xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <include file="xwork-test-beans.xml"/>
+    <package name="xworkResultTypesTestPackage1">
+        <result-types>
+            <result-type name="result1" class="com.opensymphony.xwork2.mock.MockResult">
+                <param name="param1">value1</param>
+                <param name="param2">value2</param>
+                <param name="param3">value3</param>
+            </result-type>
+            <result-type name="result2" class="com.opensymphony.xwork2.mock.MockResult">
+                <param name="paramA">valueA</param>
+                <param name="paramB">valueB</param>
+            </result-type>
+        </result-types>
+    </package>
+
+
+    <package name="xworkResultTypesTestPackage2">
+        <result-types>
+            <result-type name="result1" class="com.opensymphony.xwork2.mock.MockResult">
+                <param name="param1">value1</param>
+                <param name="param2">value2</param>
+                <param name="param3">value3</param>
+            </result-type>
+            <result-type name="result2" class="com.opensymphony.xwork2.mock.MockResult">
+                <param name="paramA">valueA</param>
+                <param name="paramB">valueB</param>
+            </result-type>
+        </result-types>
+
+        <action name="action1">
+            <result name="success" type="result1">
+                <param name="param1">newValue1</param>
+                <param name="param3">newValue3</param>
+                <param name="param10">value10</param>
+                <param name="param11">value11</param>
+            </result>
+        </action>
+
+        <action name="action2">
+            <result name="success" type="result2">
+                <param name="paramB">newValueB</param>
+                <param name="paramZ">valueZ</param>
+            </result>
+        </action>
+    </package>
+
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-results.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-results.xml
index fd35dbf..91ab555 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-results.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-results.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="default">
         <result-types>
@@ -50,4 +48,4 @@
             </result>
         </action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-1.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-1.xml
index 1a54461..a889f0f 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-1.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-1.xml
@@ -19,11 +19,9 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="default-1" />
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-2.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-2.xml
index 53ea572..c84108d 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-2.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-2.xml
@@ -19,11 +19,9 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="default-2" />
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-include.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-include.xml
index 0b751f1..d352547 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-include.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-test-wildcard-include.xml
@@ -19,15 +19,13 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <include file="xwork-test-beans.xml" />
     <include file="com/opensymphony/xwork2/config/providers/xwork-test-wildcard-*.xml" />
     <!-- config file defined inside xwork-jar.jar -->
     <include file="xwork-jar.xml" />
     <package name="default-wildcard" />
-</xwork>
\ No newline at end of file
+</struts>
\ No newline at end of file
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack-empty.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack-empty.xml
index 5f3ea4d..313507c 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack-empty.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack-empty.xml
@@ -19,15 +19,13 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.1//EN"
-    "http://struts.apache.org/dtds/xwork-2.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <bean type="com.opensymphony.xwork2.UnknownHandler" name="uh1" class="com.opensymphony.xwork2.config.providers.SomeUnknownHandler"/>
     <bean type="com.opensymphony.xwork2.UnknownHandler" name="uh2" class="com.opensymphony.xwork2.config.providers.SomeUnknownHandler"/>
 
     <unknown-handler-stack>
     </unknown-handler-stack>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack.xml b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack.xml
index 75f4379..886ae18 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/config/providers/xwork-unknownhandler-stack.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.1//EN"
-    "http://struts.apache.org/dtds/xwork-2.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <bean type="com.opensymphony.xwork2.UnknownHandler" name="uh1" class="com.opensymphony.xwork2.config.providers.SomeUnknownHandler"/>
     <bean type="com.opensymphony.xwork2.UnknownHandler" name="uh2" class="com.opensymphony.xwork2.config.providers.SomeUnknownHandler"/>
 
@@ -32,4 +30,4 @@
         <unknown-handler-ref name="uh1" />
         <unknown-handler-ref name="uh2" />
     </unknown-handler-stack>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml b/core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml
index 2c3554a..d44f41d 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/spring/actionContext-xwork.xml
@@ -19,8 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC "-//Apache Struts//XWork 2.0//EN" "http://struts.apache.org/dtds/xwork-2.0.dtd">
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<bean type="com.opensymphony.xwork2.ObjectFactory" class="com.opensymphony.xwork2.spring.SpringObjectFactory" />
 	<constant name="applicationContextPath" value="com/opensymphony/xwork2/spring/actionContext-spring.xml" />
     <constant name="struts.disallowProxyMemberAccess" value="true" />
@@ -65,4 +67,4 @@
             <result name="S2-047" type="null" />
         </action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/com/opensymphony/xwork2/spring/xwork-autowire.xml b/core/src/test/resources/com/opensymphony/xwork2/spring/xwork-autowire.xml
index 702f899..c2c3293 100644
--- a/core/src/test/resources/com/opensymphony/xwork2/spring/xwork-autowire.xml
+++ b/core/src/test/resources/com/opensymphony/xwork2/spring/xwork-autowire.xml
@@ -19,25 +19,31 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC "-//Apache Struts//XWork 2.0//EN" "http://struts.apache.org/dtds/xwork-2.0.dtd">
-<xwork>
-	<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="default" class="com.opensymphony.xwork2.DefaultActionProxyFactory" />
-	<bean type="com.opensymphony.xwork2.ObjectFactory" name="default" class="com.opensymphony.xwork2.spring.SpringObjectFactory" />
-	<constant name="applicationContextPath" value="com/opensymphony/xwork2/spring/actionContext-spring.xml" />
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="default"
+          class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>
+    <bean type="com.opensymphony.xwork2.ObjectFactory" name="default"
+          class="com.opensymphony.xwork2.spring.SpringObjectFactory"/>
+    <constant name="applicationContextPath" value="com/opensymphony/xwork2/spring/actionContext-spring.xml"/>
     <package name="default">
         <result-types>
             <result-type name="null"
-class="com.opensymphony.xwork2.result.NullResult" default="true"/>
+                         class="com.opensymphony.xwork2.result.NullResult" default="true"/>
         </result-types>
 
         <interceptors>
             <interceptor name="autowire" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor">
-              <param name="autowireStrategy">@org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE</param>
+                <param name="autowireStrategy">
+                    @org.springframework.beans.factory.config.AutowireCapableBeanFactory@AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE
+                </param>
             </interceptor>
         </interceptors>
 
         <default-interceptor-ref name="autowire"/>
 
-       <action name="simpleAction" class="com.opensymphony.xwork2.SimpleAction"/>
+        <action name="simpleAction" class="com.opensymphony.xwork2.SimpleAction"/>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/includeTest.xml b/core/src/test/resources/includeTest.xml
index c232db0..018c3ba 100644
--- a/core/src/test/resources/includeTest.xml
+++ b/core/src/test/resources/includeTest.xml
@@ -19,13 +19,11 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 1.1.1//EN"
-    "http://struts.apache.org/dtds/xwork-1.1.1.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="includeTest" extends="default" namespace="includeTest">
         <action name="includeTest" class="com.opensymphony.xwork2.SimpleAction"></action>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/org/apache/struts2/dispatcher/ng/struts-no-op.xml b/core/src/test/resources/org/apache/struts2/dispatcher/ng/struts-no-op.xml
index 28c0d65..55a8f32 100644
--- a/core/src/test/resources/org/apache/struts2/dispatcher/ng/struts-no-op.xml
+++ b/core/src/test/resources/org/apache/struts2/dispatcher/ng/struts-no-op.xml
@@ -20,6 +20,6 @@
  */
 -->
 <!DOCTYPE struts PUBLIC
-          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-          "http://struts.apache.org/dtds/struts-2.0.dtd">
+          "-//Apache Software Foundation//DTD Struts Configuration 2.6//EN"
+          "http://struts.apache.org/dtds/struts-2.6.dtd">
 <struts /> 
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/WW3090-struts.xml b/core/src/test/resources/org/apache/struts2/views/jsp/WW3090-struts.xml
index c6e256f..8e23a20 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/WW3090-struts.xml
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/WW3090-struts.xml
@@ -21,8 +21,8 @@
 -->
 
 <!DOCTYPE struts PUBLIC
-    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-    "http://struts.apache.org/dtds/struts-2.0.dtd">
+    "-//Apache Software Foundation//DTD Struts Configuration 2.6//EN"
+    "http://struts.apache.org/dtds/struts-2.6.dtd">
 
 <struts>
 
diff --git a/core/src/test/resources/xwork-1.0.dtd b/core/src/test/resources/struts-2.0.dtd
similarity index 100%
rename from core/src/test/resources/xwork-1.0.dtd
rename to core/src/test/resources/struts-2.0.dtd
diff --git a/core/src/test/resources/struts.xml b/core/src/test/resources/struts.xml
index cae2eb8..ca6609e 100644
--- a/core/src/test/resources/struts.xml
+++ b/core/src/test/resources/struts.xml
@@ -20,8 +20,8 @@
  */
 -->
 <!DOCTYPE struts PUBLIC
-          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-          "http://struts.apache.org/dtds/struts-2.0.dtd">
+          "-//Apache Software Foundation//DTD Struts Configuration 2.6//EN"
+          "http://struts.apache.org/dtds/struts-2.6.dtd">
 <struts>
     <package name="default" extends="struts-default">
         <action name="hello" class="com.opensymphony.xwork2.ActionSupport">
diff --git a/core/src/test/resources/xwork - jar.jar b/core/src/test/resources/xwork - jar.jar
index 8206d3e..94050fe 100644
--- a/core/src/test/resources/xwork - jar.jar
+++ b/core/src/test/resources/xwork - jar.jar
Binary files differ
diff --git a/core/src/test/resources/xwork - zip.zip b/core/src/test/resources/xwork - zip.zip
index a04c87e..49e9701 100644
--- a/core/src/test/resources/xwork - zip.zip
+++ b/core/src/test/resources/xwork - zip.zip
Binary files differ
diff --git a/core/src/test/resources/xwork-class-param-test.xml b/core/src/test/resources/xwork-class-param-test.xml
index 7c67baf..451b9f7 100644
--- a/core/src/test/resources/xwork-class-param-test.xml
+++ b/core/src/test/resources/xwork-class-param-test.xml
@@ -19,14 +19,13 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 2.0//EN"
-        "http://struts.apache.org/dtds/xwork-2.0.dtd">
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 
     <constant name="struts.devMode" value="true" />
     <constant name="struts.excludedClasses" value="java.lang.Object,java.lang.Runtime" />
     <constant name="struts.override.excludedPatterns" value="not-existing-pattern"/>
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/xwork-jar.jar b/core/src/test/resources/xwork-jar.jar
index 70434e6..5c71c0a 100644
--- a/core/src/test/resources/xwork-jar.jar
+++ b/core/src/test/resources/xwork-jar.jar
Binary files differ
diff --git a/core/src/test/resources/xwork-param-test.xml b/core/src/test/resources/xwork-param-test.xml
index c8fb973..ba6386d 100644
--- a/core/src/test/resources/xwork-param-test.xml
+++ b/core/src/test/resources/xwork-param-test.xml
@@ -19,12 +19,11 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 2.0//EN"
-        "http://struts.apache.org/dtds/xwork-2.0.dtd">
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <constant name="struts.devMode" value="true" />
     <constant name="struts.excludedClasses" value="java.lang.Object,java.lang.Runtime" />
     <constant name="struts.additional.excludedPatterns" value=".*(^|\.|\[|\'|&quot;)class(\.|\[|\'|&quot;).*" />
-</xwork>
+</struts>
diff --git a/core/src/test/resources/xwork-proxyinvoke.xml b/core/src/test/resources/xwork-proxyinvoke.xml
index 2ce698d..109907c 100644
--- a/core/src/test/resources/xwork-proxyinvoke.xml
+++ b/core/src/test/resources/xwork-proxyinvoke.xml
@@ -19,11 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 2.0//EN"
-        "http://struts.apache.org/dtds/xwork-2.0.dtd">
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <bean type="com.opensymphony.xwork2.ObjectFactory" name="default" class="com.opensymphony.xwork2.ProxyObjectFactory" />
 
  	<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="default" class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>
@@ -64,4 +63,4 @@
 
         <action name="ProxyInvocation" method="show" class="com.opensymphony.xwork2.ProxyInvocationAction"/>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/xwork-sample.xml b/core/src/test/resources/xwork-sample.xml
index 5ff1e39..89eb645 100644
--- a/core/src/test/resources/xwork-sample.xml
+++ b/core/src/test/resources/xwork-sample.xml
@@ -19,13 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.5//EN"
-    "http://struts.apache.org/dtds/xwork-2.5.dtd"
- >
- <!-- "file:///temp/ross/xwork/src/etc/xwork-1.0.dtd"  -->
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <include file="xwork-test-default.xml"/>
     <package name="default" extends="xwork-test-default">
 
@@ -277,4 +274,4 @@
         </package>
 
     <include file="includeTest.xml"/>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/xwork-test-beans.xml b/core/src/test/resources/xwork-test-beans.xml
index d574834..2ed15b2 100644
--- a/core/src/test/resources/xwork-test-beans.xml
+++ b/core/src/test/resources/xwork-test-beans.xml
@@ -19,12 +19,11 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 2.0//EN"
-        "http://struts.apache.org/dtds/xwork-2.0.dtd">
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 
     <constant name="struts.excludedClasses" value="java.lang.Object,java.lang.Runtime,ognl.OgnlContext,ognl.MemberAccess,ognl.ClassResolver,ognl.TypeConverter,com.opensymphony.xwork2.ognl.SecurityMemberAccess" />
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/xwork-test-default.xml b/core/src/test/resources/xwork-test-default.xml
index bdcc91b..f805aa3 100644
--- a/core/src/test/resources/xwork-test-default.xml
+++ b/core/src/test/resources/xwork-test-default.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <package name="xwork-test-default">
         <result-types>
             <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult" default="true"/>
@@ -56,4 +54,4 @@
             </interceptor-stack>
         </interceptors>
     </package>
-</xwork>
+</struts>
diff --git a/core/src/test/resources/xwork-test-validation.xml b/core/src/test/resources/xwork-test-validation.xml
index ca60347..fe71c26 100644
--- a/core/src/test/resources/xwork-test-validation.xml
+++ b/core/src/test/resources/xwork-test-validation.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-    "-//Apache Struts//XWork 2.0//EN"
-    "http://struts.apache.org/dtds/xwork-2.0.dtd"
- >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
 	<include file="xwork-test-beans.xml" />
     <package name="xwork-test-default">
         <result-types>
@@ -80,4 +78,4 @@
 
     </package>
 
-</xwork>
+</struts>
diff --git a/core/src/test/resources/xwork-zip.zip b/core/src/test/resources/xwork-zip.zip
index 1825195..136a03a 100644
--- a/core/src/test/resources/xwork-zip.zip
+++ b/core/src/test/resources/xwork-zip.zip
Binary files differ
diff --git a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java
index 6b45432..88b16d8 100644
--- a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java
+++ b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java
@@ -26,6 +26,7 @@
 import org.apache.struts.beanvalidation.actions.FieldMatchAction;
 import org.apache.struts.beanvalidation.actions.ModelDrivenAction;
 import org.apache.struts.beanvalidation.actions.ValidateGroupAction;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.Collection;
 import java.util.List;
@@ -280,6 +281,6 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        loadConfigurationProviders(new XmlConfigurationProvider("bean-validation-test.xml"));
+        loadConfigurationProviders(new StrutsXmlConfigurationProvider("bean-validation-test.xml"));
     }
 }
\ No newline at end of file
diff --git a/plugins/bean-validation/src/test/resources/bean-validation-test.xml b/plugins/bean-validation/src/test/resources/bean-validation-test.xml
index 508d9a6..360e10e 100644
--- a/plugins/bean-validation/src/test/resources/bean-validation-test.xml
+++ b/plugins/bean-validation/src/test/resources/bean-validation-test.xml
@@ -19,12 +19,10 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 2.5//EN"
-        "http://struts.apache.org/dtds/xwork-2.5.dtd"
-        >
-
-<xwork>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
     <constant name="struts.beanValidation.providerClass" value="org.hibernate.validator.HibernateValidator"/>
     <constant name="struts.beanValidation.ignoreXMLConfiguration" value="false"/>
     <constant name="struts.beanValidation.convertMessageToUtf" value="false"/>
@@ -72,4 +70,4 @@
         </action>
 
     </package>
-</xwork>
+</struts>
diff --git a/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java b/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java
index 5bead82..cf0f840 100644
--- a/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java
+++ b/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java
@@ -19,17 +19,16 @@
 package org.apache.struts2.oval.interceptor;
 
 import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.interceptor.ValidationAware;
 import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.interceptor.ValidationAware;
+import junit.framework.AssertionFailedError;
 import net.sf.oval.configuration.Configurer;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
-import junit.framework.AssertionFailedError;
-
 public class OValValidationInterceptorTest extends XWorkTestCase {
     public void testSimpleFieldsXML() throws Exception {
         ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("oval", "simpleFieldsXML", null, null);
@@ -42,7 +41,7 @@
         assertValue(fieldErrors, "lastName", Arrays.asList("lastName cannot be null"));
     }
 
-     public void testSimpleFieldsJPAAnnotations() throws Exception {
+    public void testSimpleFieldsJPAAnnotations() throws Exception {
         ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("oval", "simpleFieldsJPA", null, null);
         baseActionProxy.execute();
 
@@ -290,8 +289,7 @@
             assertValue(fieldErrors, "address", Arrays.asList("net.sf.oval.constraint.AssertValid.violated"));
             // Oval version <= 1.40 validation error for minimum length reports: "street cannot be smaller than 7 characters".
             assertValue(fieldErrors, "address.street", Arrays.asList("street cannot be smaller than 7 characters"));
-        }
-        catch (AssertionFailedError afe) {
+        } catch (AssertionFailedError afe) {
             // Oval version >= 1.50 validation error for invalid data reports: "address is invalid".
             assertValue(fieldErrors, "address", Arrays.asList("address is invalid"));
             // Oval version >= 1.50 validation error for minimum length reports: "street cannot be shorter than 7 characters".
@@ -301,30 +299,29 @@
     }
 
     public void testMemberObject() throws Exception {
-    	ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("oval", "memberObject", null, null);
-    	MemberObject action = (MemberObject) baseActionProxy.getAction();
-    	action.getPerson().setName(null);
-    	action.getPerson().setEmail(null);
-    	action.getPerson().getAddress().setStreet("short");
-    	baseActionProxy.execute();
+        ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("oval", "memberObject", null, null);
+        MemberObject action = (MemberObject) baseActionProxy.getAction();
+        action.getPerson().setName(null);
+        action.getPerson().setEmail(null);
+        action.getPerson().getAddress().setStreet("short");
+        baseActionProxy.execute();
 
-    	Map<String, List<String>> fieldErrors = ((ValidationAware) baseActionProxy.getAction()).getFieldErrors();
-    	assertNotNull(fieldErrors);
-    	assertEquals(5, fieldErrors.size()); // 5: as there will be field errors for 'person' and 'person.address' themselves
-    	assertValue(fieldErrors, "person.name", Arrays.asList("name cannot be null"));
-    	assertValue(fieldErrors, "person.email", Arrays.asList("email cannot be null"));
-       try {
-           // Oval version <= 1.40 validation error for invalid data reports: "net.sf.oval.constraint.AssertValid.violated".
-           assertValue(fieldErrors, "person.address", Arrays.asList("net.sf.oval.constraint.AssertValid.violated"));
-           // Oval version <= 1.40 validation error for minimum length reports: "street cannot be smaller than 7 characters".
-           assertValue(fieldErrors, "person.address.street", Arrays.asList("street cannot be smaller than 7 characters"));
-       }
-       catch (AssertionFailedError afe) {
-           // Oval version >= 1.50 validation error for invalid data reports: "address is invalid".
-           assertValue(fieldErrors, "person.address", Arrays.asList("address is invalid"));
-           // Oval version >= 1.50 validation error for minimum length reports: "street cannot be shorter than 7 characters".
-           assertValue(fieldErrors, "person.address.street", Arrays.asList("street cannot be shorter than 7 characters"));
-       }
+        Map<String, List<String>> fieldErrors = ((ValidationAware) baseActionProxy.getAction()).getFieldErrors();
+        assertNotNull(fieldErrors);
+        assertEquals(5, fieldErrors.size()); // 5: as there will be field errors for 'person' and 'person.address' themselves
+        assertValue(fieldErrors, "person.name", Arrays.asList("name cannot be null"));
+        assertValue(fieldErrors, "person.email", Arrays.asList("email cannot be null"));
+        try {
+            // Oval version <= 1.40 validation error for invalid data reports: "net.sf.oval.constraint.AssertValid.violated".
+            assertValue(fieldErrors, "person.address", Arrays.asList("net.sf.oval.constraint.AssertValid.violated"));
+            // Oval version <= 1.40 validation error for minimum length reports: "street cannot be smaller than 7 characters".
+            assertValue(fieldErrors, "person.address.street", Arrays.asList("street cannot be smaller than 7 characters"));
+        } catch (AssertionFailedError afe) {
+            // Oval version >= 1.50 validation error for invalid data reports: "address is invalid".
+            assertValue(fieldErrors, "person.address", Arrays.asList("address is invalid"));
+            // Oval version >= 1.50 validation error for minimum length reports: "street cannot be shorter than 7 characters".
+            assertValue(fieldErrors, "person.address.street", Arrays.asList("street cannot be shorter than 7 characters"));
+        }
 
     }
 
@@ -342,6 +339,6 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        loadConfigurationProviders(new XmlConfigurationProvider("oval-test.xml"));
+        loadConfigurationProviders(new StrutsXmlConfigurationProvider("oval-test.xml"));
     }
 }
diff --git a/plugins/oval/src/test/resources/oval-test.xml b/plugins/oval/src/test/resources/oval-test.xml
index 353e86c..522e92f 100644
--- a/plugins/oval/src/test/resources/oval-test.xml
+++ b/plugins/oval/src/test/resources/oval-test.xml
@@ -19,15 +19,14 @@
  * under the License.
  */
 -->
-<!DOCTYPE xwork PUBLIC
-        "-//Apache Struts//XWork 2.0//EN"
-        "http://struts.apache.org/dtds/xwork-2.0.dtd"
-        >
-
-<xwork>
-    <bean type="org.apache.struts2.oval.interceptor.OValValidationManager" class="org.apache.struts2.oval.interceptor.DummyDefaultOValValidationManager"/>
+<!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+        "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+    <bean type="org.apache.struts2.oval.interceptor.OValValidationManager"
+          class="org.apache.struts2.oval.interceptor.DummyDefaultOValValidationManager"/>
     <constant name="struts.enable.SlashesInActionNames" value="true"/>
-    <constant name="struts.oval.validateJPAAnnotations" value="false" />
+    <constant name="struts.oval.validateJPAAnnotations" value="false"/>
 
     <package namespace="oval" name="oval-test">
         <result-types>
@@ -87,11 +86,13 @@
             <interceptor-ref name="ovalValidation"/>
             <result type="void"></result>
         </action>
-        <action name="fieldsWidthProfiles13" class="org.apache.struts2.oval.interceptor.FieldsWithProfiles" method="run1">
+        <action name="fieldsWidthProfiles13" class="org.apache.struts2.oval.interceptor.FieldsWithProfiles"
+                method="run1">
             <interceptor-ref name="ovalValidation"/>
             <result type="void"></result>
         </action>
-        <action name="fieldsWidthProfiles2" class="org.apache.struts2.oval.interceptor.FieldsWithProfiles" method="run2">
+        <action name="fieldsWidthProfiles2" class="org.apache.struts2.oval.interceptor.FieldsWithProfiles"
+                method="run2">
             <interceptor-ref name="ovalValidation"/>
             <result type="void"></result>
         </action>
@@ -109,15 +110,15 @@
         </action>
         <action name="modelDrivenAction" class="org.apache.struts2.oval.interceptor.ModelDrivenAction">
             <interceptor-ref name="ovalValidation">
-              <param name="validateJPAAnnotations">true</param>
+                <param name="validateJPAAnnotations">true</param>
             </interceptor-ref>
             <result type="void"></result>
         </action>
         <action name="memberObject" class="org.apache.struts2.oval.interceptor.MemberObject">
             <interceptor-ref name="ovalValidation">
-              <param name="validateJPAAnnotations">true</param>
+                <param name="validateJPAAnnotations">true</param>
             </interceptor-ref>
             <result type="void"></result>
         </action>
     </package>
-</xwork>
+</struts>