From 585325dd4685cf8029f2e67b30f1d91214c8aea1 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 27 Dec 2025 18:39:05 -0800 Subject: [PATCH] Add support for `--add-reads`, `--default-module-for-created-files` and `--patch-module` in JavacOptions --- .../rife/bld/operations/JavacOptions.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/main/java/rife/bld/operations/JavacOptions.java b/src/main/java/rife/bld/operations/JavacOptions.java index bbe9c90..806a652 100644 --- a/src/main/java/rife/bld/operations/JavacOptions.java +++ b/src/main/java/rife/bld/operations/JavacOptions.java @@ -72,6 +72,30 @@ public class JavacOptions extends ArrayList { return this; } + /** + * Specifies additional modules to be considered as required by a given + * module + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions addReads(String... modules) { + return addReads(Arrays.asList(modules)); + } + + /** + * Specifies additional modules to be considered as required by a given + * module + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions addReads(List modules) { + add("--add-reads"); + add(StringUtils.join(modules, ",")); + return this; + } + /** * Root modules to resolve in addition to the initial modules, * or all modules on the module path if a module is @@ -110,6 +134,19 @@ public class JavacOptions extends ArrayList { return this; } + /** + * Fallback target module for files created by annotation processors, + * if none specified or inferred + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions defaultModuleForCreatedFiles(String module) { + add("--default-module-for-created-files"); + add(module); + return this; + } + /** * Output source locations where deprecated APIs are used * @@ -267,6 +304,18 @@ public class JavacOptions extends ArrayList { return contains("-release"); } + /** + * Overrides or augments a module with classes and resources in JAR files or directories + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions patchModule(String module) { + add("--patch-module"); + add(module); + return this; + } + /** * Compile for the specified Java SE release. *