Skip to content

Commit

Permalink
Fix build on JDK 11 (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
valfirst committed Jun 20, 2022
1 parent fac60eb commit 10368f4
Showing 1 changed file with 28 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,15 @@
import org.powermock.configuration.GlobalConfiguration;
import org.powermock.reflect.Whitebox;

import java.io.File;
import java.lang.management.ManagementFactory;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

import static org.assertj.core.api.Java6Assertions.assertThat;
import static org.assertj.core.api.Java6Assertions.fail;
Expand All @@ -52,7 +58,7 @@ public void should_delegate_calls_to_mock_maker_from_configuration() {
ClassLoader currentCL = Thread.currentThread().getContextClassLoader();

try {
ClassLoader classLoader = new URLClassLoader(((URLClassLoader) currentCL).getURLs(), null);
ClassLoader classLoader = new URLClassLoader(urlsFromClassLoader(currentCL), null);
Thread.currentThread().setContextClassLoader(classLoader);

final Class<?> jUnitCoreClass = classLoader.loadClass(JUnitCore.class.getName());
Expand All @@ -72,8 +78,27 @@ public void should_delegate_calls_to_mock_maker_from_configuration() {
} finally {
Thread.currentThread().setContextClassLoader(currentCL);
}


}

private static URL[] urlsFromClassLoader(ClassLoader classLoader) {
if (classLoader instanceof URLClassLoader) {
return ((URLClassLoader) classLoader).getURLs();
}
List<URL> list = new ArrayList<URL>();
for (String classPathEntry : ManagementFactory.getRuntimeMXBean().getClassPath().split(File.pathSeparator)) {
list.add(toURL(classPathEntry));
}
return list.toArray(new URL[0]);
}

private static URL toURL(String classPathEntry) {
try {
return new File(classPathEntry).toURI().toURL();
}
catch (MalformedURLException ex) {
throw new IllegalArgumentException(
"URL could not be created from '" + classPathEntry + "'", ex);
}
}


Expand Down

0 comments on commit 10368f4

Please sign in to comment.