< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionsParser.java
Print this page
rev 56282 : [mq]: graal
*** 34,45 ****
import java.util.ServiceLoader;
import jdk.internal.vm.compiler.collections.EconomicMap;
import jdk.internal.vm.compiler.collections.MapCursor;
- import jdk.vm.ci.services.Services;
-
/**
* This class contains methods for parsing Graal options and matching them against a set of
* {@link OptionDescriptors}. The {@link OptionDescriptors} are loaded via a {@link ServiceLoader}.
*/
public class OptionsParser {
--- 34,43 ----
*** 51,80 ****
*/
public static Iterable<OptionDescriptors> getOptionsLoader() {
if (IS_IN_NATIVE_IMAGE || cachedOptionDescriptors != null) {
return cachedOptionDescriptors;
}
! boolean java8OrEarlier = Services.getSavedProperties().get("java.specification.version").compareTo("1.9") < 0;
! ClassLoader loader;
! if (java8OrEarlier) {
! // On JDK 8, Graal and its extensions are loaded by same class loader.
! loader = OptionDescriptors.class.getClassLoader();
! } else {
! /*
! * The Graal module (i.e., jdk.internal.vm.compiler) is loaded by the platform class
! * loader as of JDK 9. Modules that depend on and extend Graal are loaded by the app
! * class loader. As such, we need to start the provider search at the app class loader
! * instead of the platform class loader.
! */
! loader = ClassLoader.getSystemClassLoader();
! }
! return ServiceLoader.load(OptionDescriptors.class, loader);
}
! public static void setCachedOptionDescriptors(List<OptionDescriptors> cachedOptionDescriptors) {
assert IS_BUILDING_NATIVE_IMAGE : "Used to pre-initialize the option descriptors during native image generation";
! OptionsParser.cachedOptionDescriptors = cachedOptionDescriptors;
}
/**
* Parses a map representing assignments of values to options.
*
--- 49,64 ----
*/
public static Iterable<OptionDescriptors> getOptionsLoader() {
if (IS_IN_NATIVE_IMAGE || cachedOptionDescriptors != null) {
return cachedOptionDescriptors;
}
! return ModuleSupport.getOptionsLoader();
}
! public static void setCachedOptionDescriptors(List<OptionDescriptors> list) {
assert IS_BUILDING_NATIVE_IMAGE : "Used to pre-initialize the option descriptors during native image generation";
! OptionsParser.cachedOptionDescriptors = list;
}
/**
* Parses a map representing assignments of values to options.
*
< prev index next >