Commit Graph

20 Commits

Author SHA1 Message Date
Mikhail Filippov
bf43f2fc01 IJPL-150165 bump Kotlin language and API version
GitOrigin-RevId: a59dc8ca214a5047773fccf1cf28a1e1b07acf68
2024-08-30 22:15:55 +00:00
Vladimir Krivosheev
e3af69868a introduce BuildTargetHashSupplier (simplify build target fingerprint calculation)
GitOrigin-RevId: f810aed3a678cb36212d68c7539f6893bbe68cf2
2024-08-22 19:11:14 +00:00
Vladimir Krivosheev
e947d352b2 RuntimeModuleRepositoryTarget - use hash4j lib
GitOrigin-RevId: 69299dafffb04c2cbaf339e2bdc86c903dad701a
2024-08-22 12:20:34 +00:00
Yuriy Artamonov
4dac328bf4 [i18n] IJPL-158521 Fix more ellipsis problems in plugins
GitOrigin-RevId: 981393c6f975e303847ca598b650fec8fe65d9bf
2024-07-30 16:35:51 +00:00
Nikolay Chashnikov
cebbe13031 IJPL-797 intellij.platform.runtime.repository review internal API
Constructor is replaced by a factory method in RawRuntimeModuleDescriptor.

GitOrigin-RevId: d6538ac3444867271aa81900d14143677ccaa538
2024-05-17 12:11:30 +00:00
Nikolay Chashnikov
51be1809f5 [runtime module repository] refactoring: extract raw module descriptors data to a separate class
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
2024-02-12 19:47:16 +00:00
Nikolay Chashnikov
162cf5ec55 [runtime module repository] include descriptors for test parts of modules to runtime module repository (IDEA-345102)
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
2024-02-07 20:12:25 +00:00
Nikolay Chashnikov
44f53cad05 [devkit] implement incremental compilation for runtime module repository (IDEA-335089)
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
2024-01-29 17:17:12 +00:00
Nikolay Chashnikov
5a1588b3e1 [tests] refactoring: extract checking code from RuntimeModuleRepositoryBuilderTest to a separate file
This is needed to reuse it for tests for IDEA-335089.

GitOrigin-RevId: 89b79c0573d6c427704b97217330f6ec4dd7f59b
2024-01-29 17:17:05 +00:00
Nikolay Chashnikov
0d8c30ae02 [devkit] cleanup: reuse constant for RuntimeModuleRepositoryTargetType instead of declaring a duplicating one
GitOrigin-RevId: acb040cde33b4df2f31d0ff9ad174b0d80edcec8
2023-10-17 19:30:09 +00:00
Daniil Ovchinnikov
27e155fc21 IJPL-167 bump language and API version 1.8 -> 1.9
GitOrigin-RevId: 5204df1784bbbba550476415e4ceff7368ab5fd4
2023-09-19 19:52:47 +00:00
Nikolay Chashnikov
8e4bbe97fd [runtime module repository] cache classpath for intellij.platform.bootstrap module in MANIFEST.MF (IJPL-128)
Currently com.intellij.platform.runtime.loader.Loader parses all module descriptor xml files to compute classpath for ModularMain class, this may take noticeable time. Now classpath for the bootstrap module is cached in an attribute of MANIFEST.MF file, so it can be loaded faster. This is done for production mode only, because in that mode paths to classes roots don't use macros, so there is no need to substitute them.

GitOrigin-RevId: 0af716f718976b67c3a6bcfc94358a0b488d8649
2023-06-01 18:09:45 +00:00
Nikolay Chashnikov
1634cec9fa [runtime module repository] remove unnecessary ../ prefix from resource paths in module descriptors (IJPL-109)
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
2023-05-17 17:46:04 +00:00
Nikolay Chashnikov
25f7a44a3a [runtime module repository] fix generation of descriptors with resource roots only
GitOrigin-RevId: 8760ad91b4b33caf62f781e701965138859126d3
2023-04-25 08:17:36 +00:00
Nikolay Chashnikov
5ed2534fa6 [runtime module repository] check that dependencies are resolved in tests, not during generation
Unresolved dependencies don't always indicate a real problem, because they may correspond to optional dependencies from bundled to non-bundled plugins. So instead of checking this in the build scripts, it's better to check this in a test.

GitOrigin-RevId: dfe404cbbfe27ee41733cf46f0f0926e37ce3c12
2023-04-18 13:15:53 +00:00
Nikolay Chashnikov
2ffe94fea1 [runtime repository] cleanup: remove unused code
It was moved to RuntimeModuleRepositoryValidator in bd53da038.

GitOrigin-RevId: dd9f6516861dbdd6e9ebc5f951d4817322d57e93
2023-04-13 19:00:36 +00:00
Nikolay Chashnikov
1b98750c9f [runtime repository] don't include non-existing output paths to module descriptors (IJPL-109)
GitOrigin-RevId: c6e0877f1f3cf3def89591038ada6d12ae72e706
2023-04-11 13:55:37 +00:00
Nikolay Chashnikov
bdb038ffff [runtime repository] refactoring: extract code which validates descriptors to a separate object (IJPL-109)
...to reuse it from build scripts.

GitOrigin-RevId: bd53da0383b384a1cef50208792117745683ec8e
2023-04-06 14:31:49 +00:00
Nikolay Chashnikov
1f81225e2e [runtime repository] refactoring: move constants used in the builder to a separate public class
...to make them accessible from other modules.

GitOrigin-RevId: 8d9b1b11e80d133e34641c6959988c22336b0935
2023-04-06 14:31:39 +00:00
Nikolay Chashnikov
9126fa4426 [platform] initial version of runtime module repository (IJPL-109)
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
2023-04-05 15:39:33 +00:00