This is needed to support loading the module repository from multiple JAR files, which is in turn needed to support non-bundled plugins (IJPL-633).
GitOrigin-RevId: 853ed4f3221cb2aa34696802d6c36f9636da97b6
Code which adds transitive dependencies for tests is modified to include only those dependencies which aren't already available. This change reduces the size of module-descriptors.jar from 4.2Mb to 2.2Mb for the intellij ultimate project.
GitOrigin-RevId: f1ac6cd72b082afac5a8d3100c8664dbbe80fbe0
The runtime module descriptors file should be updated if and only if something changes in the configuration of modules and libraries. Since up-to-date checks in org.jetbrains.jps.incremental.BuildOperations are based on files, we need to have at least one source file registered by the builder for that. Here .idea/modules.xml is used for that.
GitOrigin-RevId: ca5e56dfca75d63e4056017a4164dd3fbb20b116
Module descriptors are put to a separate module-descriptors.jar now, and we don't plan to place their resources to that JAR, so the paths will always start with '../' prefix, and it'll just complicate code and requires additional work at runtime. So let's suppose that paths in module-descriptors.jar are relative to the directory where the JAR file is located.
GitOrigin-RevId: 43572247998686fd81d66bcdfba8dd700605281b
This change introduces RuntimeModuleRepository API which will be used to determine paths to classes and other resources of modules at runtime. It also adds RuntimeModuleRepositoryBuilder which generates descriptors for modules during compilation of intellij project (this is controlled by a registry key which is switched off by default for now).
GitOrigin-RevId: be33235ec0cdb7ea55a925e753b9b58a3ca63ac3