Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save philippn/644d0228e80412367adb3abc7494e5d8 to your computer and use it in GitHub Desktop.
Save philippn/644d0228e80412367adb3abc7494e5d8 to your computer and use it in GitHub Desktop.
A custom URIResolver that makes DeltaXML compatible with Spring Boot
import java.net.URI;
import javax.xml.transform.sax.SAXSource;
import net.sf.saxon.Configuration;
import net.sf.saxon.lib.StandardURIResolver;
public class JarProtocolNormalizingUriResolver extends StandardURIResolver {
private static final long serialVersionUID = -5732403477669089951L;
public static final String JAR_PROTOCOL = "jar";
/**
* @param config
*/
public JarProtocolNormalizingUriResolver(Configuration config) {
super(config);
}
/* (non-Javadoc)
* @see net.sf.saxon.lib.StandardURIResolver#setSAXInputSource(javax.xml.transform.sax.SAXSource, java.lang.String)
*/
@Override
protected void setSAXInputSource(SAXSource source, String uriString) {
URI uri = URI.create(uriString);
if (JAR_PROTOCOL.equals(uri.getScheme())) {
StringBuilder sb = new StringBuilder(JAR_PROTOCOL).append(':').
append(URI.create(uri.getRawSchemeSpecificPart()).normalize().toString());
uriString = sb.toString();
}
super.setSAXInputSource(source, uriString);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment