commit
078536aded
|
@ -22,6 +22,7 @@ import java.lang.management.ManagementFactory;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLClassLoader;
|
import java.net.URLClassLoader;
|
||||||
|
import java.net.URLDecoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -156,7 +157,13 @@ final class ChangeableUrls implements Iterable<URL> {
|
||||||
urls.add(referenced);
|
urls.add(referenced);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
nonExistentEntries.add(referenced);
|
referenced = new URL(jarUrl, URLDecoder.decode(entry, "UTF-8"));
|
||||||
|
if (new File(referenced.getFile()).exists()) {
|
||||||
|
urls.add(referenced);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
nonExistentEntries.add(referenced);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (MalformedURLException ex) {
|
catch (MalformedURLException ex) {
|
||||||
|
|
|
@ -87,14 +87,17 @@ class ChangeableUrlsTests {
|
||||||
absolute.mkdirs();
|
absolute.mkdirs();
|
||||||
URL absoluteUrl = absolute.toURI().toURL();
|
URL absoluteUrl = absolute.toURI().toURL();
|
||||||
File jarWithClassPath = makeJarFileWithUrlsInManifestClassPath("project-core/target/classes/",
|
File jarWithClassPath = makeJarFileWithUrlsInManifestClassPath("project-core/target/classes/",
|
||||||
"project-web/target/classes/", "does-not-exist/target/classes", relative.getName() + "/", absoluteUrl);
|
"project-web/target/classes/", "project%20space/target/classes/", "does-not-exist/target/classes/",
|
||||||
|
relative.getName() + "/", absoluteUrl);
|
||||||
new File(jarWithClassPath.getParentFile(), "project-core/target/classes").mkdirs();
|
new File(jarWithClassPath.getParentFile(), "project-core/target/classes").mkdirs();
|
||||||
new File(jarWithClassPath.getParentFile(), "project-web/target/classes").mkdirs();
|
new File(jarWithClassPath.getParentFile(), "project-web/target/classes").mkdirs();
|
||||||
|
new File(jarWithClassPath.getParentFile(), "project space/target/classes").mkdirs();
|
||||||
ChangeableUrls urls = ChangeableUrls.fromClassLoader(
|
ChangeableUrls urls = ChangeableUrls.fromClassLoader(
|
||||||
new URLClassLoader(new URL[] { jarWithClassPath.toURI().toURL(), makeJarFileWithNoManifest() }));
|
new URLClassLoader(new URL[] { jarWithClassPath.toURI().toURL(), makeJarFileWithNoManifest() }));
|
||||||
assertThat(urls.toList()).containsExactly(
|
assertThat(urls.toList()).containsExactly(
|
||||||
new URL(jarWithClassPath.toURI().toURL(), "project-core/target/classes/"),
|
new URL(jarWithClassPath.toURI().toURL(), "project-core/target/classes/"),
|
||||||
new URL(jarWithClassPath.toURI().toURL(), "project-web/target/classes/"), relative.toURI().toURL(),
|
new URL(jarWithClassPath.toURI().toURL(), "project-web/target/classes/"),
|
||||||
|
new URL(jarWithClassPath.toURI().toURL(), "project space/target/classes/"), relative.toURI().toURL(),
|
||||||
absoluteUrl);
|
absoluteUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue