diff --git a/pom.xml b/pom.xml index fe0eccf25..c4c9968bf 100644 --- a/pom.xml +++ b/pom.xml @@ -169,20 +169,9 @@ 1.10.1 - commons-digester - commons-digester - 2.1 - - - - commons-beanutils - commons-beanutils - - - commons-logging - commons-logging - - + org.apache.commons + commons-digester3 + 3.2 commons-logging diff --git a/src/main/java/org/apache/commons/validator/FormSetFactory.java b/src/main/java/org/apache/commons/validator/FormSetFactory.java index 34a544fe3..81e11e4db 100644 --- a/src/main/java/org/apache/commons/validator/FormSetFactory.java +++ b/src/main/java/org/apache/commons/validator/FormSetFactory.java @@ -16,7 +16,7 @@ */ package org.apache.commons.validator; -import org.apache.commons.digester.AbstractObjectCreationFactory; +import org.apache.commons.digester3.AbstractObjectCreationFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.xml.sax.Attributes; @@ -26,7 +26,7 @@ * * @since 1.2 */ -public class FormSetFactory extends AbstractObjectCreationFactory { +public class FormSetFactory extends AbstractObjectCreationFactory { /** Logging */ private transient Log log = LogFactory.getLog(FormSetFactory.class); @@ -89,9 +89,9 @@ private FormSet createFormSet(final ValidatorResources resources, * @throws Exception If an error occurs creating the FormSet. */ @Override - public Object createObject(final Attributes attributes) throws Exception { + public FormSet createObject(final Attributes attributes) throws Exception { - final ValidatorResources resources = (ValidatorResources) digester.peek(0); + final ValidatorResources resources = (ValidatorResources) getDigester().peek(0); final String language = attributes.getValue("language"); final String country = attributes.getValue("country"); diff --git a/src/main/java/org/apache/commons/validator/ValidatorResources.java b/src/main/java/org/apache/commons/validator/ValidatorResources.java index b9a7fca41..925d0bf2b 100644 --- a/src/main/java/org/apache/commons/validator/ValidatorResources.java +++ b/src/main/java/org/apache/commons/validator/ValidatorResources.java @@ -25,9 +25,10 @@ import java.util.Map; import org.apache.commons.collections.FastHashMap; // DEPRECATED -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.Rule; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import org.apache.commons.digester3.Digester; +import org.apache.commons.digester3.Rule; +import org.apache.commons.digester3.binder.DigesterLoader; +import org.apache.commons.digester3.xmlrules.FromXmlRulesModule; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.xml.sax.Attributes; @@ -557,15 +558,23 @@ public Map getValidatorActions() { * Initialize the digester. */ private Digester initDigester() { - URL rulesUrl = this.getClass().getResource(VALIDATOR_RULES); - if (rulesUrl == null) { - // Fix for Issue# VALIDATOR-195 - rulesUrl = ValidatorResources.class.getResource(VALIDATOR_RULES); - } - if (getLog().isDebugEnabled()) { - getLog().debug("Loading rules from '" + rulesUrl + "'"); - } - final Digester digester = DigesterLoader.createDigester(rulesUrl); + // Create a digester loader using FromXmlRulesModule + DigesterLoader loader = DigesterLoader.newLoader(new FromXmlRulesModule() { + @Override + protected void loadRules() { + URL rulesUrl = this.getClass().getResource(VALIDATOR_RULES); + if (rulesUrl == null) { + // Fix for Issue# VALIDATOR-195 + rulesUrl = ValidatorResources.class.getResource(VALIDATOR_RULES); + } + if (getLog().isDebugEnabled()) { + getLog().debug("Loading rules from '" + rulesUrl + "'"); + } + loadXMLRules(rulesUrl); + } + }); + Digester digester = loader.newDigester(); + digester.setNamespaceAware(true); digester.setValidating(true); digester.setUseContextClassLoader(true); diff --git a/src/main/resources/org/apache/commons/validator/digester-rules.xml b/src/main/resources/org/apache/commons/validator/digester-rules.xml index 8647f7941..b35384a94 100644 --- a/src/main/resources/org/apache/commons/validator/digester-rules.xml +++ b/src/main/resources/org/apache/commons/validator/digester-rules.xml @@ -22,8 +22,8 @@ --> - +