/* * Created on Oct 30, 2004 */ package cyrille.xml.xsl; import java.io.InputStream; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; import javax.xml.transform.URIResolver; import javax.xml.transform.stream.StreamSource; /** * @author <a href="mailto:cleclerc@pobox.com">Cyrille Le Clerc</a> */ public class ClassPathUriResolver implements URIResolver { /** * */ public ClassPathUriResolver() { super(); } /** * @see javax.xml.transform.URIResolver#resolve(java.lang.String, java.lang.String) */ public Source resolve(String href, String base) throws TransformerException { InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(href); if (in == null) { if (href.charAt(0) == '/') { in = Thread.currentThread().getContextClassLoader().getResourceAsStream(href.substring(1)); } else { in = Thread.currentThread().getContextClassLoader().getResourceAsStream("/" + href); } } if (in == null) { throw new TransformerException("Resource '" + href + "' not found"); } return new StreamSource(in); } }