From df4e193aa87bdaa0637d26f9c39184fa550bc52e Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Tue, 26 Nov 2019 20:27:28 +0100 Subject: [PATCH] WW-5049 Extends xwork DTD as well --- .../providers/XmlConfigurationProvider.java | 3 +- .../StrutsXmlConfigurationProvider.java | 1 + core/src/main/resources/xwork-2.6.dtd | 157 ++++++++++++++++++ 3 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 core/src/main/resources/xwork-2.6.dtd 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 dd61d811d..745f908da 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 @@ -116,6 +116,7 @@ public class XmlConfigurationProvider implements ConfigurationProvider { this.errorIfMissing = errorIfMissing; Map 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"); @@ -224,7 +225,7 @@ public class XmlConfigurationProvider implements ConfigurationProvider { String impl = child.getAttribute("class"); try { Class classImpl = ClassLoaderUtil.loadClass(impl, getClass()); - if (classImpl.isAssignableFrom(ConfigurationProvider.class)) { + if (ConfigurationProvider.class.isAssignableFrom(classImpl)) { ConfigurationProvider provider = (ConfigurationProvider) classImpl.newInstance(); provider.register(containerBuilder, props); } else { 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 ef27b6ce5..5f4bf9e9a 100644 --- a/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java +++ b/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java @@ -73,6 +73,7 @@ public class StrutsXmlConfigurationProvider extends XmlConfigurationProvider { dtdMappings.put("-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN", "struts-2.1.7.dtd"); dtdMappings.put("-//Apache Software Foundation//DTD Struts Configuration 2.3//EN", "struts-2.3.dtd"); dtdMappings.put("-//Apache Software Foundation//DTD Struts Configuration 2.5//EN", "struts-2.5.dtd"); + dtdMappings.put("-//Apache Software Foundation//DTD Struts Configuration 2.6//EN", "struts-2.6.dtd"); setDtdMappings(dtdMappings); File file = new File(filename); if (file.getParent() != null) { diff --git a/core/src/main/resources/xwork-2.6.dtd b/core/src/main/resources/xwork-2.6.dtd new file mode 100644 index 000000000..6f0e31974 --- /dev/null +++ b/core/src/main/resources/xwork-2.6.dtd @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +