langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/util/JDK9Wrappers.java
changeset 43767 9cff98a149cb
parent 42822 a84956e7ee4d
child 44573 245bb4e6f983
equal deleted inserted replaced
43648:ce7b7f98a236 43767:9cff98a149cb
   270         private Configuration(Object configuration) {
   270         private Configuration(Object configuration) {
   271             this.theRealConfiguration = configuration;
   271             this.theRealConfiguration = configuration;
   272             init();
   272             init();
   273         }
   273         }
   274 
   274 
   275         public Configuration resolveRequiresAndUses(
   275         public Configuration resolveAndBind(
   276                 ModuleFinder beforeFinder,
   276                 ModuleFinder beforeFinder,
   277                 ModuleFinder afterFinder,
   277                 ModuleFinder afterFinder,
   278                 Collection<String> roots) {
   278                 Collection<String> roots) {
   279             try {
   279             try {
   280                 Object result = resolveRequiresAndUsesMethod.invoke(theRealConfiguration,
   280                 Object result = resolveAndBindMethod.invoke(theRealConfiguration,
   281                                     beforeFinder.theRealModuleFinder,
   281                                     beforeFinder.theRealModuleFinder,
   282                                     afterFinder.theRealModuleFinder,
   282                                     afterFinder.theRealModuleFinder,
   283                                     roots
   283                                     roots
   284                                 );
   284                                 );
   285                 Configuration configuration = new Configuration(result);
   285                 Configuration configuration = new Configuration(result);
   291         }
   291         }
   292 
   292 
   293         // -----------------------------------------------------------------------------------------
   293         // -----------------------------------------------------------------------------------------
   294 
   294 
   295         private static Class<?> configurationClass = null;
   295         private static Class<?> configurationClass = null;
   296         private static Method resolveRequiresAndUsesMethod;
   296         private static Method resolveAndBindMethod;
   297 
   297 
   298         static final Class<?> getConfigurationClass() {
   298         static final Class<?> getConfigurationClass() {
   299             init();
   299             init();
   300             return configurationClass;
   300             return configurationClass;
   301         }
   301         }
   303         private static void init() {
   303         private static void init() {
   304             if (configurationClass == null) {
   304             if (configurationClass == null) {
   305                 try {
   305                 try {
   306                     configurationClass = Class.forName("java.lang.module.Configuration", false, null);
   306                     configurationClass = Class.forName("java.lang.module.Configuration", false, null);
   307                     Class<?> moduleFinderInterface = ModuleFinder.getModuleFinderClass();
   307                     Class<?> moduleFinderInterface = ModuleFinder.getModuleFinderClass();
   308                     resolveRequiresAndUsesMethod = configurationClass.getDeclaredMethod("resolveRequiresAndUses",
   308                     resolveAndBindMethod = configurationClass.getDeclaredMethod("resolveAndBind",
   309                                 moduleFinderInterface,
   309                                 moduleFinderInterface,
   310                                 moduleFinderInterface,
   310                                 moduleFinderInterface,
   311                                 Collection.class
   311                                 Collection.class
   312                     );
   312                     );
   313                 } catch (ClassNotFoundException | NoSuchMethodException | SecurityException ex) {
   313                 } catch (ClassNotFoundException | NoSuchMethodException | SecurityException ex) {