8199768: jdk/test/lib/compiler/CompilerUtils.java needs to provide more control over compilation
Reviewed-by: psandoz, alanb
This commit is contained in:
parent
b45137814b
commit
feea6b06c3
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -47,8 +47,14 @@ public final class CompilerUtils {
|
|||||||
* {@code <destination>/**}. The destination directory will be created if
|
* {@code <destination>/**}. The destination directory will be created if
|
||||||
* it doesn't exist.
|
* it doesn't exist.
|
||||||
*
|
*
|
||||||
|
* Equivalent to calling {@code compile(source, destination, true, options);}.
|
||||||
|
*
|
||||||
* All warnings/errors emitted by the compiler are output to System.out/err.
|
* All warnings/errors emitted by the compiler are output to System.out/err.
|
||||||
*
|
*
|
||||||
|
* @param source Path to the source directory
|
||||||
|
* @param destination Path to the destination directory
|
||||||
|
* @param options Any options to pass to the compiler
|
||||||
|
*
|
||||||
* @return true if the compilation is successful
|
* @return true if the compilation is successful
|
||||||
*
|
*
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
@ -59,6 +65,36 @@ public final class CompilerUtils {
|
|||||||
*/
|
*/
|
||||||
public static boolean compile(Path source, Path destination, String... options)
|
public static boolean compile(Path source, Path destination, String... options)
|
||||||
throws IOException
|
throws IOException
|
||||||
|
{
|
||||||
|
return compile(source, destination, true, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compile all the java sources in {@code <source>} and optionally its
|
||||||
|
* subdirectories, to
|
||||||
|
* {@code <destination>}. The destination directory will be created if
|
||||||
|
* it doesn't exist.
|
||||||
|
*
|
||||||
|
* All warnings/errors emitted by the compiler are output to System.out/err.
|
||||||
|
*
|
||||||
|
* @param source Path to the source directory
|
||||||
|
* @param destination Path to the destination directory
|
||||||
|
* @param recurse If {@code true} recurse into any {@code source} subdirectories
|
||||||
|
* to compile all java source files; else only compile those directly in
|
||||||
|
* {@code source}.
|
||||||
|
* @param options Any options to pass to the compiler
|
||||||
|
*
|
||||||
|
* @return true if the compilation is successful
|
||||||
|
*
|
||||||
|
* @throws IOException
|
||||||
|
* if there is an I/O error scanning the source tree or
|
||||||
|
* creating the destination directory
|
||||||
|
* @throws UnsupportedOperationException
|
||||||
|
* if there is no system java compiler
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static boolean compile(Path source, Path destination, boolean recurse, String... options)
|
||||||
|
throws IOException
|
||||||
{
|
{
|
||||||
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
||||||
if (compiler == null) {
|
if (compiler == null) {
|
||||||
@ -69,7 +105,7 @@ public final class CompilerUtils {
|
|||||||
StandardJavaFileManager jfm = compiler.getStandardFileManager(null, null, null);
|
StandardJavaFileManager jfm = compiler.getStandardFileManager(null, null, null);
|
||||||
|
|
||||||
List<Path> sources
|
List<Path> sources
|
||||||
= Files.find(source, Integer.MAX_VALUE,
|
= Files.find(source, (recurse ? Integer.MAX_VALUE : 1),
|
||||||
(file, attrs) -> (file.toString().endsWith(".java")))
|
(file, attrs) -> (file.toString().endsWith(".java")))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user