< prev index next >
test/lib/jdk/test/lib/compiler/CompilerUtils.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 45,56 ****
--- 45,62 ----
/**
* Compile all the java sources in {@code <source>/**} to
* {@code <destination>/**}. The destination directory will be created if
* 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.
*
+ * @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
*
* @throws IOException
* if there is an I/O error scanning the source tree or
* creating the destination directory
*** 58,77 ****
* if there is no system java compiler
*/
public static boolean compile(Path source, Path destination, String... options)
throws IOException
{
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
if (compiler == null) {
// no compiler available
throw new UnsupportedOperationException("Unable to get system java compiler. "
+ "Perhaps, jdk.compiler module is not available.");
}
StandardJavaFileManager jfm = compiler.getStandardFileManager(null, null, null);
List<Path> sources
! = Files.find(source, Integer.MAX_VALUE,
(file, attrs) -> (file.toString().endsWith(".java")))
.collect(Collectors.toList());
Files.createDirectories(destination);
jfm.setLocation(StandardLocation.CLASS_PATH, Collections.emptyList());
--- 64,113 ----
* if there is no system java compiler
*/
public static boolean compile(Path source, Path destination, String... options)
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();
if (compiler == null) {
// no compiler available
throw new UnsupportedOperationException("Unable to get system java compiler. "
+ "Perhaps, jdk.compiler module is not available.");
}
StandardJavaFileManager jfm = compiler.getStandardFileManager(null, null, null);
List<Path> sources
! = Files.find(source, (recurse ? Integer.MAX_VALUE : 1),
(file, attrs) -> (file.toString().endsWith(".java")))
.collect(Collectors.toList());
Files.createDirectories(destination);
jfm.setLocation(StandardLocation.CLASS_PATH, Collections.emptyList());
< prev index next >