If after updating the workspace model path to iml file of some module changes (e.g. because the original module was renamed, and other module got its name), we need to update the stored paths in ModuleBridgeImpl, ModuleStateStorageManager and ModulePathMacroManager.
GitOrigin-RevId: 0ca4aa592c1bed6eb0a68ad83fd2164dbc6a73dd
There were a couple of problems which were fixed within the ticket:
1. `CustomImlData` was not saved for modules stored at external system folder
2. `DummyParentEntitySource` was applied not only for module entity but for an other e.g `ModuleGroupPathEntity`,
`ModuleCustomImlDataEntity`... This entities without PersistentId which leads to incorrect behaviour at
replaceBySource and leaking DummyParentEntitySource` to the main store
3. There was a problem that the system don't load `ExternalSystemOptions` if customRootsSerializer is exist
4. For Clion we should created `ExternalSystemModuleOptionsEntity` if we know the externalSystemId but project import
not started yet(for some reasons it may not start e.g due to the problems at Makefile) and we should properly handle
serialization of such cases
GitOrigin-RevId: f045ceda298d61cf779091e2350827c7e0fb1ab2
If a module configuration isn't stored in iml and its ModuleEntity uses custom entitySource, and a facet configuration is stored in iml and its FacetEntity uses the standard JpsFileEntitySource, we need to collect all relevant entities with different sources during save, otherwise FacetEntity may be missed and its configuration won't be saved.
GitOrigin-RevId: 44de0eaafb2ab87d9e10fc11e7174d8261529d32
If a directory was added, 'addedFileUrls' will contain only its direct children, so we need to explicitly add serializers for new modules mentioned in modules.xml files to 'affectedFileLoaders' list.
GitOrigin-RevId: 61d2683b031374e0831a9e0a2c147a3ce7fc7b82
JpsProjectSerializersImpl tries to read at least 3 components (NewModuleRootManager, FacetManager, DeprecatedModuleOptionManager) from each iml file so caching its parsed content speed ups loading. It's needed to clear cache after all modules are loaded to save memory and ensure that content of files will be read again if they change.
GitOrigin-RevId: eedb19aea44dd34347fae64c6f45728caa4fa6c2