in src/com/intellij/idea/plugin/hybris/project/tasks/ImportProjectProgressModalWindow.java [133:219]
public synchronized void run(@NotNull final ProgressIndicator indicator) {
indicator.setIndeterminate(true);
indicator.setText(message("hybris.project.import.preparation"));
final var cache = new HybrisConfiguratorCache();
final var allModules = getHybrisModuleDescriptors();
final var allYModules = allModules.stream()
.filter(YModuleDescriptor.class::isInstance)
.map(YModuleDescriptor.class::cast)
.distinct()
.collect(Collectors.toMap(YModuleDescriptor::getName, Function.identity()));
final var allModuleDescriptors = allModules.stream()
.collect(Collectors.toMap(ModuleDescriptor::getName, Function.identity()));
final var appSettings = ApplicationSettingsComponent.getInstance().getState();
final var projectSettingsComponent = ProjectSettingsComponent.getInstance(project);
final var projectSettings = projectSettingsComponent.getState();
final var modulesFilesDirectory = hybrisProjectDescriptor.getModulesFilesDirectory();
if (modulesFilesDirectory != null && !modulesFilesDirectory.exists()) {
modulesFilesDirectory.mkdirs();
}
this.initializeHybrisProjectSettings(project, projectSettings);
this.updateProjectDictionary(project, hybrisProjectDescriptor.getModulesChosenForImport());
this.selectSdk(project);
if (!refresh) {
this.saveCustomDirectoryLocation(project, projectSettings);
projectSettings.setExcludedFromScanning(hybrisProjectDescriptor.getExcludedFromScanning());
}
this.saveImportedSettings(projectSettings, appSettings, projectSettingsComponent);
this.disableWrapOnType(ImpexLanguage.INSTANCE);
PropertiesComponent.getInstance(project).setValue(SHOW_UNLINKED_GRADLE_POPUP, false);
processUltimateEdition(indicator);
ModifiableModuleModel rootProjectModifiableModel = model == null
? modifiableModelsProvider.getModifiableModuleModel()
: model;
configuratorFactory.getSpringConfigurator().process(indicator, hybrisProjectDescriptor, allModuleDescriptors);
configuratorFactory.getGroupModuleConfigurator().process(indicator, allModules);
int counter = 0;
for (ModuleDescriptor moduleDescriptor : allModules) {
final Module javaModule = createJavaModule(indicator, allYModules, rootProjectModifiableModel, moduleDescriptor, appSettings);
modules.add(javaModule);
counter++;
if (counter >= COMMITTED_CHUNK_SIZE) {
counter = 0;
ApplicationManager.getApplication().invokeAndWait(
() -> ApplicationManager.getApplication().runWriteAction(modifiableModelsProvider::commit));
modifiableModelsProvider = new IdeModifiableModelsProviderImpl(project);
rootProjectModifiableModel = model == null
? modifiableModelsProvider.getModifiableModuleModel()
: model;
}
}
configuratorFactory.getModuleDependenciesConfigurator().configure(indicator, hybrisProjectDescriptor, modifiableModelsProvider);
configuratorFactory.getSpringConfigurator().configure(indicator, hybrisProjectDescriptor, allModuleDescriptors, modifiableModelsProvider);
configuratorFactory.getRunConfigurationConfigurator().configure(indicator, hybrisProjectDescriptor, project, cache);
configuratorFactory.getVersionControlSystemConfigurator().configure(indicator, hybrisProjectDescriptor, project);
configuratorFactory.getSearchScopeConfigurator().configure(indicator, project, appSettings, rootProjectModifiableModel);
configureProjectIcon();
indicator.setText(message("hybris.project.import.saving.project"));
ApplicationManager.getApplication().invokeAndWait(
() -> ApplicationManager.getApplication().runWriteAction(modifiableModelsProvider::commit));
configuratorFactory.getLoadedConfigurator().configure(project, hybrisProjectDescriptor.getModulesChosenForImport());
configureJavaCompiler(indicator, cache);
configureKotlinCompiler(indicator, cache);
configureEclipseModules(indicator);
configureGradleModules(indicator);
project.putUserData(ExternalSystemDataKeys.NEWLY_CREATED_PROJECT, Boolean.TRUE);
}