package org.handwerkszeug.common.util; import java.io.BufferedInputStream; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; import org.xml.sax.SAXException; public class ClassLoaderAwareEntityResolver implements EntityResolver { protected Map<String, String> paths = new HashMap<String, String>(); protected ClassLoader classLoader; public ClassLoaderAwareEntityResolver() { this.classLoader = getClass().getClassLoader(); } public ClassLoaderAwareEntityResolver(ClassLoader classLoader) { this.classLoader = classLoader; } public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { String path = this.paths.get(publicId); if (StringUtil.isEmpty(path) == false) { return new InputSource(new BufferedInputStream(this.classLoader .getResourceAsStream(path))); } return null; } public void add(String publicId, String path) { this.paths.put(publicId, path); } }