< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java

Print this page
rev 14279 : [mq]: 8140281-deprecation-optional.get


 225             return EXIT_ERROR;
 226         } catch (BadArgs e) {
 227             taskHelper.reportError(e.key, e.args);
 228             if (e.showUsage) {
 229                 log.println(taskHelper.getMessage("main.usage.summary", PROGNAME));
 230             }
 231             return EXIT_CMDERR;
 232         } catch (Throwable x) {
 233             log.println(taskHelper.getMessage("main.msg.bug"));
 234             x.printStackTrace(log);
 235             return EXIT_ABNORMAL;
 236         } finally {
 237             log.flush();
 238         }
 239     }
 240 
 241     private static Map<String, Path> modulesToPath(Configuration cf) {
 242         Map<String, Path> modPaths = new HashMap<>();
 243         for (ResolvedModule resolvedModule : cf.modules()) {
 244             ModuleReference mref = resolvedModule.reference();
 245             URI uri = mref.location().get();
 246             modPaths.put(mref.descriptor().name(), Paths.get(uri));
 247         }
 248         return modPaths;
 249     }
 250 
 251     /*
 252      * Jlink API entry point.
 253      */
 254     public static void createImage(JlinkConfiguration config,
 255             PluginsConfiguration plugins)
 256             throws Exception {
 257         Objects.requireNonNull(config);
 258         Objects.requireNonNull(config.getOutput());
 259         plugins = plugins == null ? new PluginsConfiguration() : plugins;
 260 
 261         if (config.getModulepaths().isEmpty()) {
 262             throw new Exception("Empty module paths");
 263         }
 264         Path[] arr = new Path[config.getModulepaths().size()];
 265         arr = config.getModulepaths().toArray(arr);


 389         // resolve all root modules
 390         Configuration cf = Configuration.empty()
 391                 .resolveRequires(finder,
 392                                  ModuleFinder.empty(),
 393                                  roots);
 394 
 395         // module name -> reference
 396         Map<String, ModuleReference> map = new HashMap<>();
 397         cf.modules().forEach(m -> {
 398             ModuleReference mref = m.reference();
 399             map.put(mref.descriptor().name(), mref);
 400         });
 401 
 402         // set of modules that are observable
 403         Set<ModuleReference> mrefs = new HashSet<>(map.values());
 404 
 405         // add the other modules
 406         for (String mod : otherMods) {
 407             Optional<ModuleReference> omref = finder.find(mod);
 408             if (omref.isPresent()) {
 409                 ModuleReference mref = omref.get();
 410                 map.putIfAbsent(mod, mref);
 411                 mrefs.add(mref);
 412             } else {
 413                 // no need to fail
 414             }
 415         }
 416 
 417         return new ModuleFinder() {
 418             @Override
 419             public Optional<ModuleReference> find(String name) {
 420                 return Optional.ofNullable(map.get(name));
 421             }
 422 
 423             @Override
 424             public Set<ModuleReference> findAll() {
 425                 return mrefs;
 426             }
 427         };
 428     }
 429 




 225             return EXIT_ERROR;
 226         } catch (BadArgs e) {
 227             taskHelper.reportError(e.key, e.args);
 228             if (e.showUsage) {
 229                 log.println(taskHelper.getMessage("main.usage.summary", PROGNAME));
 230             }
 231             return EXIT_CMDERR;
 232         } catch (Throwable x) {
 233             log.println(taskHelper.getMessage("main.msg.bug"));
 234             x.printStackTrace(log);
 235             return EXIT_ABNORMAL;
 236         } finally {
 237             log.flush();
 238         }
 239     }
 240 
 241     private static Map<String, Path> modulesToPath(Configuration cf) {
 242         Map<String, Path> modPaths = new HashMap<>();
 243         for (ResolvedModule resolvedModule : cf.modules()) {
 244             ModuleReference mref = resolvedModule.reference();
 245             URI uri = mref.location().getWhenPresent();
 246             modPaths.put(mref.descriptor().name(), Paths.get(uri));
 247         }
 248         return modPaths;
 249     }
 250 
 251     /*
 252      * Jlink API entry point.
 253      */
 254     public static void createImage(JlinkConfiguration config,
 255             PluginsConfiguration plugins)
 256             throws Exception {
 257         Objects.requireNonNull(config);
 258         Objects.requireNonNull(config.getOutput());
 259         plugins = plugins == null ? new PluginsConfiguration() : plugins;
 260 
 261         if (config.getModulepaths().isEmpty()) {
 262             throw new Exception("Empty module paths");
 263         }
 264         Path[] arr = new Path[config.getModulepaths().size()];
 265         arr = config.getModulepaths().toArray(arr);


 389         // resolve all root modules
 390         Configuration cf = Configuration.empty()
 391                 .resolveRequires(finder,
 392                                  ModuleFinder.empty(),
 393                                  roots);
 394 
 395         // module name -> reference
 396         Map<String, ModuleReference> map = new HashMap<>();
 397         cf.modules().forEach(m -> {
 398             ModuleReference mref = m.reference();
 399             map.put(mref.descriptor().name(), mref);
 400         });
 401 
 402         // set of modules that are observable
 403         Set<ModuleReference> mrefs = new HashSet<>(map.values());
 404 
 405         // add the other modules
 406         for (String mod : otherMods) {
 407             Optional<ModuleReference> omref = finder.find(mod);
 408             if (omref.isPresent()) {
 409                 ModuleReference mref = omref.getWhenPresent();
 410                 map.putIfAbsent(mod, mref);
 411                 mrefs.add(mref);
 412             } else {
 413                 // no need to fail
 414             }
 415         }
 416 
 417         return new ModuleFinder() {
 418             @Override
 419             public Optional<ModuleReference> find(String name) {
 420                 return Optional.ofNullable(map.get(name));
 421             }
 422 
 423             @Override
 424             public Set<ModuleReference> findAll() {
 425                 return mrefs;
 426             }
 427         };
 428     }
 429 


< prev index next >