2020import org .gradle .api .provider .Provider ;
2121import org .gradle .api .provider .ProviderFactory ;
2222import org .gradle .api .tasks .SourceSet ;
23+ import org .gradlex .javamodule .dependencies .LocalModule ;
2324import org .jspecify .annotations .Nullable ;
2425import org .slf4j .LoggerFactory ;
2526
2627import javax .inject .Inject ;
2728import java .io .File ;
2829import java .nio .file .Path ;
2930import java .nio .file .Paths ;
31+ import java .util .Collection ;
3032import java .util .HashMap ;
3133import java .util .Map ;
3234
@@ -37,8 +39,7 @@ public abstract class ModuleInfoCache {
3739
3840 private final boolean initializedInSettings ;
3941 private final Map <File , ModuleInfo > moduleInfo = new HashMap <>();
40- private final Map <String , String > moduleNameToProjectPath = new HashMap <>();
41- private final Map <String , String > moduleNameToCapability = new HashMap <>();
42+ private final Map <String , LocalModule > localModules = new HashMap <>();
4243
4344 @ Inject
4445 public ModuleInfoCache (boolean initializedInSettings ) {
@@ -82,28 +83,30 @@ public ModuleInfo put(File projectRoot, String moduleInfoPath, String projectPat
8283 File folder = new File (projectRoot , moduleInfoPath );
8384 if (maybePutModuleInfo (folder , providers )) {
8485 ModuleInfo thisModuleInfo = moduleInfo .get (folder );
85- moduleNameToProjectPath .put (thisModuleInfo .getModuleName (), projectPath );
86+ String moduleName = thisModuleInfo .getModuleName ();
87+ String capability = null ;
8688 Path parentDirectory = Paths .get (moduleInfoPath ).getParent ();
8789 String capabilitySuffix = parentDirectory == null ? null : sourceSetToCapabilitySuffix (parentDirectory .getFileName ().toString ());
8890 if (capabilitySuffix != null ) {
8991 if (group .isPresent ()) {
90- moduleNameToCapability . put ( thisModuleInfo . getModuleName (), group .get () + ":" + artifact + "-" + capabilitySuffix ) ;
92+ capability = group .get () + ":" + artifact + "-" + capabilitySuffix ;
9193 } else {
9294 LOGGER .lifecycle (
93- "[WARN] [Java Module Dependencies] " + thisModuleInfo . getModuleName () + " - 'group' not defined!" );
95+ "[WARN] [Java Module Dependencies] " + moduleName + " - 'group' not defined!" );
9496 }
9597 }
98+ localModules .put (moduleName , new LocalModule (moduleName , projectPath , capability ));
9699 return thisModuleInfo ;
97100 }
98101 return ModuleInfo .EMPTY ;
99102 }
100103
101- public @ Nullable String getProjectPath (String moduleName ) {
102- return moduleNameToProjectPath .get (moduleName );
104+ public @ Nullable LocalModule getLocalModule (String moduleName ) {
105+ return localModules .get (moduleName );
103106 }
104107
105- public @ Nullable String getCapability ( String moduleName ) {
106- return moduleNameToCapability . get ( moduleName );
108+ public Collection < LocalModule > getAllLocalModules ( ) {
109+ return localModules . values ( );
107110 }
108111
109112 private boolean maybePutModuleInfo (File folder , ProviderFactory providers ) {
0 commit comments