421 private static Path toPathLocation(ResolvedModule m) { 422 Optional<URI> ouri = m.reference().location(); 423 if (!ouri.isPresent()) 424 throw new InternalError(m + " does not have a location"); 425 URI uri = ouri.get(); 426 return Paths.get(uri); 427 } 428 429 430 private static ImageProvider createImageProvider(JlinkConfiguration config, 431 Path retainModulesPath, 432 boolean ignoreSigning, 433 boolean bindService, 434 boolean verbose, 435 PrintWriter log) 436 throws IOException 437 { 438 Configuration cf = bindService ? config.resolveAndBind() 439 : config.resolve(); 440 441 if (verbose && log != null) { 442 // print modules to be linked in 443 cf.modules().stream() 444 .sorted(Comparator.comparing(ResolvedModule::name)) 445 .forEach(rm -> log.format("%s %s%n", 446 rm.name(), rm.reference().location().get())); 447 448 // print provider info 449 Set<ModuleReference> references = cf.modules().stream() 450 .map(ResolvedModule::reference).collect(Collectors.toSet()); 451 452 String msg = String.format("%n%s:", taskHelper.getMessage("providers.header")); 453 printProviders(log, msg, references); 454 } 455 456 // emit a warning for any incubating modules in the configuration 457 if (log != null) { 458 String im = cf.modules() 459 .stream() 460 .map(ResolvedModule::reference) | 421 private static Path toPathLocation(ResolvedModule m) { 422 Optional<URI> ouri = m.reference().location(); 423 if (!ouri.isPresent()) 424 throw new InternalError(m + " does not have a location"); 425 URI uri = ouri.get(); 426 return Paths.get(uri); 427 } 428 429 430 private static ImageProvider createImageProvider(JlinkConfiguration config, 431 Path retainModulesPath, 432 boolean ignoreSigning, 433 boolean bindService, 434 boolean verbose, 435 PrintWriter log) 436 throws IOException 437 { 438 Configuration cf = bindService ? config.resolveAndBind() 439 : config.resolve(); 440 441 ModuleFinder finder = config.finder(); 442 for (String root : config.getModules()) { 443 Optional<ModuleReference> modRef = finder.find(root); 444 if (modRef.isPresent()) { 445 ModuleDescriptor modDesc = modRef.get().descriptor(); 446 if (modDesc.isAutomatic()) { 447 throw new IllegalArgumentException(taskHelper.getMessage("err.automatic.module.as.root", modDesc.name())); 448 } 449 } 450 } 451 452 if (verbose && log != null) { 453 // print modules to be linked in 454 cf.modules().stream() 455 .sorted(Comparator.comparing(ResolvedModule::name)) 456 .forEach(rm -> log.format("%s %s%n", 457 rm.name(), rm.reference().location().get())); 458 459 // print provider info 460 Set<ModuleReference> references = cf.modules().stream() 461 .map(ResolvedModule::reference).collect(Collectors.toSet()); 462 463 String msg = String.format("%n%s:", taskHelper.getMessage("providers.header")); 464 printProviders(log, msg, references); 465 } 466 467 // emit a warning for any incubating modules in the configuration 468 if (log != null) { 469 String im = cf.modules() 470 .stream() 471 .map(ResolvedModule::reference) |