From dbf3a78c7f2196ff3483136a1fbba0a772b9342b Mon Sep 17 00:00:00 2001 From: Sandy Dunlop Date: Sun, 14 Dec 2025 09:02:59 +0000 Subject: [PATCH] Added support for "provides ... with..." directive. --- .../javamodule/moduleinfo/ModuleInfo.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java b/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java index cad50b0..b592873 100644 --- a/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java +++ b/src/main/java/org/gradlex/javamodule/moduleinfo/ModuleInfo.java @@ -27,6 +27,7 @@ public class ModuleInfo extends ModuleSpec { final Set requiresStaticTransitive = new LinkedHashSet<>(); final Map> ignoreServiceProviders = new LinkedHashMap<>(); final Set uses = new LinkedHashSet<>(); + final Map> providers = new LinkedHashMap<>(); boolean exportAllPackages; boolean requireAllDefinedDependencies; @@ -92,6 +93,22 @@ public void requiresStaticTransitive(String requiresStaticTransitive) { addOrThrow(this.requiresStaticTransitive, requiresStaticTransitive); } + /** + * @param provides corresponds to the directive in a 'module-info.java' file + * @param with specifys the package(s) containing provided service classes + */ + public void provides(String provides, String... with) { + addOrThrow(this.providers, provides, with); + } + + /** + * Getter for the providers map (needed for the transformation logic) + * @return + */ + public Map> getProviders() { + return providers; + } + /** * @param uses corresponds to the directive in a 'module-info.java' file */