22
33package xyz.block.artifactswap
44
5+ import com.fueledbycaffeine.spotlight.buildscript.GradlePath
56import com.fueledbycaffeine.spotlight.buildscript.SpotlightProjectList
67import com.fueledbycaffeine.spotlight.buildscript.SpotlightRulesList
7- import com.fueledbycaffeine.spotlight.buildscript.graph.StrictModeTypeSafeProjectAccessorRule
8+ import com.fueledbycaffeine.spotlight.buildscript.graph.TypeSafeProjectAccessorRule
89import java.io.Serializable
910import org.gradle.api.file.DirectoryProperty
1011import org.gradle.api.logging.Logging
@@ -54,7 +55,8 @@ internal abstract class ArtifactSwapModuleSelectionValueSource :
5455 val config = parameters.config.get()
5556
5657 // Read project lists
57- val ideProjectsList = SpotlightProjectList .ideProjects(rootDir).read()
58+ val allProjectsList = SpotlightProjectList .allProjects(rootDir).read()
59+ val ideProjectsList = SpotlightProjectList .ideProjects(rootDir) { allProjectsList }.read()
5860 val requestedProjects =
5961 ideProjectsList.ifEmpty {
6062 // If empty, load all projects
@@ -71,7 +73,9 @@ internal abstract class ArtifactSwapModuleSelectionValueSource :
7173
7274 // Read spotlight rules
7375 val spotlightRules = SpotlightRulesList (rootDir).read()
74- val typeSafeAccessorRule = StrictModeTypeSafeProjectAccessorRule (rootProjectName)
76+ val rootProjectAccessor = GradlePath (rootDir, rootProjectName).typeSafeAccessorName
77+ val typeSafeAccessorMap = allProjectsList.associateBy { it.typeSafeAccessorName }
78+ val typeSafeAccessorRule = TypeSafeProjectAccessorRule (rootProjectAccessor, typeSafeAccessorMap)
7579 val allRules = spotlightRules.implicitRules + typeSafeAccessorRule
7680
7781 val selector = ArtifactSwapModuleSelectorFactory .create(rootDir, config, allRules)
0 commit comments