java.util.spi.ToolProvider#run ( )源码实例Demo

下面列出了java.util.spi.ToolProvider#run ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: pro   文件: DocerPlugin.java
private static int generateDoc(Log log, ToolProvider javadocTool, DocerConf docerConf, List<Path> sourcePath, Optional<Integer> release, Path input, Path output) {
  var javadoc = new Javadoc(output.resolve(input.getFileName().toString()), sourcePath);
  docerConf.rawArguments().ifPresent(javadoc::rawArguments);
  javadoc.modulePath(docerConf.moduleDependencyPath());
  docerConf.upgradeModulePath().ifPresent(javadoc::upgradeModulePath);
  docerConf.rootModules().ifPresent(javadoc::rootModules);
  javadoc.quiet(docerConf.quiet());
  javadoc.html5(docerConf.html5());
  release.ifPresent(javadoc::release);
  docerConf.enablePreview().ifPresent(javadoc::enablePreview);
  docerConf.link().filter(url -> isLinkHostOnline(log, url)).ifPresent(javadoc::link);
  
  var cmdLine = gatherAll(JavadocOption.class, option -> option.action).apply(javadoc, new CmdLine());
  var files = docerConf.files().orElseGet(
      () -> walkIfNecessary(List.of(input), pathFilenameEndsWith(".java")));  //FIXME, use rootNames ??
  files.forEach(cmdLine::add);
  var arguments = cmdLine.toArguments();
  log.verbose(files, fs -> OptionAction.toPrettyString(JavadocOption.class, option -> option.action).apply(javadoc, "javadoc") + "\n" + fs.stream().map(Path::toString).collect(Collectors.joining(" ")));
  
  return javadocTool.run(System.out, System.err, arguments);
}
 
源代码2 项目: pro   文件: PackagerPlugin.java
private static int packageModule(Log log, ToolProvider jarTool, Path moduleExploded,  Path moduleArtifact, PackagerConf packager, Map<String, Metadata> metadataMap, String prefix) {
  var modules = ModuleFinder.of(moduleExploded).findAll();
  if (modules.size() != 1) {
    throw new IllegalStateException("more than one module packaged in the exploded module " + moduleExploded);
  }
  
  var moduleName = modules.iterator().next().descriptor().name(); 
  
  var metadataOpt = Optional.ofNullable(metadataMap.get(moduleName));
  var version = metadataOpt.flatMap(Metadata::version).orElse("1.0");
  var jar = new Jar(moduleExploded, moduleArtifact.resolve(prefix + moduleName + "-" + version + ".jar"));
  jar.setModuleVersion(version);
  metadataOpt.flatMap(Metadata::mainClass).ifPresent(jar::setMainClass);
  packager.rawArguments().ifPresent(jar::rawArguments);
  
  var cmdLine = new CmdLine().add("--create");
  cmdLine = OptionAction.gatherAll(JarOption.class, option -> option.action).apply(jar, cmdLine);
  var arguments = cmdLine.add(".").toArguments();
  
  log.verbose(jar, _jar -> OptionAction.toPrettyString(JarOption.class, option -> option.action).apply(_jar, "jar"));
  var exitCode = jarTool.run(System.out, System.err, arguments);
  return exitCode;
}
 
源代码3 项目: pro   文件: PackagerPlugin.java
private static int packageSourceOrDoc(Log log, ToolProvider jarTool, Path input, Path outputPath, PackagerConf packager, Map<String, Metadata> metadataMap, String suffix) {
  var moduleName = input.getFileName().toString();
  
  var metadataOpt = Optional.ofNullable(metadataMap.get(moduleName));
  var version = metadataOpt.flatMap(Metadata::version).orElse("1.0");
  
  var jar = new Jar(input, outputPath.resolve(moduleName + "-" + suffix + "-" + version + ".jar"));
  packager.rawArguments().ifPresent(jar::rawArguments);
  
  var cmdLine = new CmdLine().add("--create");
  cmdLine = OptionAction.gatherAll(JarOption.class, option -> option.action).apply(jar, cmdLine);
  var arguments = cmdLine.add(".").toArguments();
  
  log.verbose(jar, _jar -> OptionAction.toPrettyString(JarOption.class, option -> option.action).apply(_jar, "jar"));
  var exitCode = jarTool.run(System.out, System.err, arguments);
  return exitCode;
}
 
源代码4 项目: openjdk-jdk9   文件: ToolProviderTest.java
private void test() throws Exception {
    ToolProvider testProvider = ToolProvider.findFirst("test").get();
    int rc = testProvider.run(System.out, System.err, "hello test");
    if (rc != 0) {
        throw new Exception("unexpected exit code: " + rc);
    }
}
 
源代码5 项目: openjdk-jdk9   文件: ImageModules.java
static ToolResult execTool(ToolProvider tool, String... args) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PrintStream ps = new PrintStream(baos);
    List<String> filteredArgs = Stream.of(args)
                                      .map(s -> s.split(" ")).flatMap(Stream::of)
                                      .filter(s -> !s.equals(""))
                                      .collect(Collectors.toList());
    System.out.println(tool + " " + filteredArgs);
    int ec = tool.run(ps, ps, filteredArgs.toArray(new String[] {}));
    return new ToolResult(ec, new String(baos.toByteArray(), UTF_8));
}
 
源代码6 项目: pro   文件: ModuleFixerPlugin.java
private static int patchModularJar(ToolProvider jarTool, ModuleReference ref, Path generatedModuleInfo) {
  System.out.println("[modulefixer] fix " + ref.descriptor().name());
  return jarTool.run(System.out, System.err,
      "--update",
      "--file", Path.of(ref.location().orElseThrow()).toString(),
      "-C", generatedModuleInfo.getParent().toString(),
      generatedModuleInfo.getFileName().toString());
}
 
源代码7 项目: pro   文件: CompilerPlugin.java
private static int compileAllFiles(Log log, ToolProvider javacTool, Javac javac, Optional<Integer> release, List<Path> files) {
  release.ifPresent(javac::release);
  var cmdLine = gatherAll(JavacOption.class, option -> option.action).apply(javac, new CmdLine());
  files.forEach(cmdLine::add);

  var arguments = cmdLine.toArguments();
  log.verbose(files, fs -> toPrettyString(JavacOption.class, option -> option.action).apply(javac, "javac") + "\n" + fs.stream().map(Path::toString).collect(joining(" ")));

  return javacTool.run(System.out, System.err, arguments);
}
 
 方法所在类
 同类方法