in boot/src/main/java/net/java/html/boot/BrowserBuilder.java [363:437]
private static URL findResourceURL(String resource, String suffix, IOException[] mal, Class<?> relativeTo) {
if (suffix != null) {
int lastDot = resource.lastIndexOf('.');
if (lastDot != -1) {
resource = resource.substring(0, lastDot) + suffix + resource.substring(lastDot);
} else {
resource = resource + suffix;
}
}
URL url = null;
try {
String baseURL = System.getProperty("browser.rootdir"); // NOI18N
if (baseURL != null) {
URL u = new File(baseURL, resource).toURI().toURL();
if (isReal(u)) {
url = u;
}
}
{
URL u = new URL(resource);
if (suffix == null || isReal(u)) {
url = u;
}
return url;
}
} catch (MalformedURLException ex) {
mal[0] = ex;
}
if (url == null) {
url = relativeTo.getResource(resource);
}
if (url == null) {
final ProtectionDomain pd = relativeTo.getProtectionDomain();
if (pd != null && pd.getCodeSource() != null) {
URL jar = pd.getCodeSource().getLocation();
try {
URL u = new URL(jar, resource);
if (isReal(u)) {
url = u;
}
} catch (MalformedURLException ex) {
ex.initCause(mal[0]);
mal[0] = ex;
}
}
}
if (url == null) {
URL res = BrowserBuilder.class.getResource("html4j.txt");
LOG.log(Level.FINE, "Found html4j {0}", res);
if (res != null) {
try {
URLConnection c = res.openConnection();
LOG.log(Level.FINE, "testing : {0}", c);
if (c instanceof JarURLConnection) {
JarURLConnection jc = (JarURLConnection) c;
URL base = jc.getJarFileURL();
for (int i = 0; i < 50; i++) {
URL u = new URL(base, resource);
if (isReal(u)) {
url = u;
break;
}
base = new URL(base, "..");
}
}
} catch (IOException ex) {
mal[0] = ex;
}
}
}
return url;
}