[DependencySubstitution] cleanup: encapsulate coordinate matching inside DependencySubstitutionExtension

Encapsulated dependency coordinates allows to misunderstanding what is the dependency coordinates and how they should compare with each other. Also, it forbids dependency coordinate hijack by other extensions.

Maven coordinates should be specified only by the Library and Module Maven coordinate entities.

### Code Reviews
  * IJ-CR-164983

### Issues
  * IDEA-370483 Maven performance degradation related to library dependency substitution

GitOrigin-RevId: 01461ea4bf0fe44e60a80404a2cf08f16c0d5853
This commit is contained in:
Sergei Vorobyov
2025-06-13 21:20:44 +02:00
committed by intellij-monorepo-bot
parent 5a7b7533f6
commit f10a240e01
9 changed files with 82 additions and 112 deletions

View File

@@ -1421,7 +1421,7 @@
<externalProjectDataService implementation="com.intellij.externalSystem.JavaModuleDataService"/>
<externalWorkspaceDataService implementation="com.intellij.externalSystem.JavaManifestDataService"/>
<libraryDataServiceExtension implementation="com.intellij.externalSystem.JavaLibraryDataServiceExtension"/>
<dependencySubstitutionCoordinateContributor implementation="com.intellij.java.impl.dependencySubstitution.DependencySubstitutionMavenCoordinateContributor"/>
<dependencySubstitutionCoordinateContributor implementation="com.intellij.java.impl.dependencySubstitution.MavenCoordinateDependencySubstitutionExtension"/>
<postStartupActivity implementation="com.intellij.pom.java.AcceptedLanguageLevelsSettingsStartupActivity"/>
<projectModelModifier implementation="com.intellij.openapi.roots.impl.IdeaProjectModelModifier" order="last"/>
<multiHostInjector implementation="com.intellij.psi.impl.source.tree.injected.JavaConcatenationToInjectorAdapter" order="first"/>