Deprecated APIs which still have internal usage are marked as internal to ensure that new external usages won't appear.
GitOrigin-RevId: b85ab4eacb14f33d958d3d424ca52c911cc7d49c
The goal is to take full control over iml parsing. Namely:
0. From WSM's point of view, iml/xml files are plain xml files that describe a project, not a component store. There are no components in WSM, there are entities. Partitioning (accessing components by names) is not really helpful here.
1. Get full access to iml/xml file content: soon we'll need a method like `getAllComponents`. Introducing this method to JpsFileContentReader does not look right because this would mean that some code might try parsing the whole config file, instead of querying its own piece of configuration.
2. Do not keep parsed iml files in the memory longer than needed (JpsFileContentReader may hold cached content longer than actually needed).
GitOrigin-RevId: 7461e6a1a0fa539feb025f6f626f224df56be230
We have code that invokes `jpsLibrary.getParent().getParent()` to get a JpsModule instance for a module-level library. To keep such code working, we need to have JpsModule and JpsProject as super-parents (not direct parents) of JpsLibrary instances in the new implementation as well.
GitOrigin-RevId: a5f944d152229275b05efdfc686afa091c3fd963
JpsModuleExtensionBridge API is introduced which allows converting child entities of ModuleEntity in the workspace model to child elements of JpsModule in the build process.
GitOrigin-RevId: 86277abed01980441b40f7eec3bcd16ca57e040f
Unlike the old implementation, the new one may call JpsComponentLoader.loadComponent multiple times for the same file, so it's better to cache content to speed up loading.
GitOrigin-RevId: 4c3630f24bdcb8740ef5cd3ba6d414febb0f9d77
Data which is present in the workspace model is taken from it, other components are loaded from xml files as before.
GitOrigin-RevId: 368e2b15aa055bc3489fb944c334379f10f2725e
The new implementation based on the workspace model behaves slightly differently for some projects with invalid configurations, tests should tolerate this.
GitOrigin-RevId: fa5a7c888aa60ff27507bff3b9a05fc3d68ececc
Production code sorts modules before saving. Also, this is needed to simplify testing loading in the new implementation of JPS model (IJPL-409).
GitOrigin-RevId: f540342b831bf73cb0e717d51b92da323201edaf
This is needed to test loading external configuration in the new implementation of JPS model (IJPL-409) and to avoid conversions between Path and String.
JpsCompilerConfigurationTest changed to load the project configuration using JpsSerializationManager API and migrated to JUnit5.
GitOrigin-RevId: a9d85b2b8797cdecbc43c07339ad89511823d758
JpsModelFromTestData utility is added which uses JpsSerializationManager instead of creating JpsModel and calling JpsProjectLoader directly. Tests are migrated to use it instead of extending JpsSerializationTestCase. This is needed to use these tests to verify the new implementation of JPS model serialization (IJPL-409). Also, the tests are migrated to JUnit 5.
GitOrigin-RevId: 874f0b01ea6ae5d31666b2dafb843052cc017024
This is needed to refactor simplify JpsProjectLoader to allow reusing its code in the new implementation of the JPS model (IJPL-409).
GitOrigin-RevId: b88fb246454601489e7133df4b078e5e52f6da58
JpsProjectExtensionWithExternalDataSerializer is introduced to support project components which may have data in the external storage. Code related to loading the compiler configuration is moved from JpsProjectLoader to JpsJavaCompilerConfigurationSerializer. This is needed to refactor JpsProjectLoader to allow reusing its code in the new implementation of the JPS model (IJPL-409).
GitOrigin-RevId: c0e64c02c49e4a451da9b9743c240227bd6465a4
Implementations for the following elements are provided for now:
* modules: content, source and excluded roots, custom properties of modules and source roots, dependencies;
* libraries: roots and custom properties;
* SDKs: roots and custom properties;
* java: custom properties of modules and dependencies.
GitOrigin-RevId: 1829d8defa1b36148abfbd063264defdd6c16014
This is needed to reuse it in the new implementation based on the workspace model (IJPL-409).
GitOrigin-RevId: a749b014ea5d28a574c3b1999f23d4376ed27c4c
This is needed to make it easier to provide a new implementation of JpsModel delegating to Workspace Model (IJPL-409).
GitOrigin-RevId: 16e3a57ebccd561a3fc9cbbf54b1ed474563cf5f
Now, if JPS runs in a WSL container, it mangles paths to JARs from `~\.m2`.
JPS uses JARs from the Windows disk. Although it would be more performant to use JARs from the Linux drive, this commit makes JPS at least work on WSL.
GitOrigin-RevId: 9c9d6dc378f03cc7e992b9fca8b639ccb709fd2b
The UNC root of a WSL image path changed in Windows 11. It was `\\wsl$\` before and became `\\wsl.localhost\`.
GitOrigin-RevId: ec6f638eee90f9875871c3381051b4a7cc0733f3