blob: aee2ef663aed8e1a7d365b926b2505d423c93e8f [file] [log] [blame]
package org.apache.meecrowave.tomcat.light;
import org.apache.tomcat.util.descriptor.LocalResolver;
import org.apache.tomcat.util.digester.Digester;
import org.apache.tomcat.util.digester.RuleSet;
import org.xml.sax.ext.EntityResolver2;
import static java.util.Collections.emptyMap;
// used to replace org.apache.tomcat.util.descriptor.DigesterFactory in some shades - see pom.xml
public final class LightDigester {
private LightDigester() {
// no-op
}
public static Digester newDigester(boolean xmlValidation,
boolean xmlNamespaceAware,
RuleSet rule,
boolean blockExternal) {
if (xmlValidation) {
throw new IllegalArgumentException("Light distribution does not support xml validation");
}
final Digester digester = new Digester();
digester.setNamespaceAware(xmlNamespaceAware);
digester.setValidating(false);
digester.setUseContextClassLoader(true);
final EntityResolver2 resolver = new LocalResolver(emptyMap(), emptyMap(), blockExternal);
digester.setEntityResolver(resolver);
if (rule != null) {
digester.addRuleSet(rule);
}
return digester;
}
}