@Nullable public Library downloadLibrary(Module module, AppEngineStandardMavenLibrary library) { RepositoryLibraryProperties libraryProperties = new RepositoryLibraryProperties( library.getGroupId(), library.getArtifactId(), library.getVersion()); RepositoryLibraryDescription libraryDescription = RepositoryLibraryDescription.findDescription(libraryProperties); RepositoryLibraryPropertiesModel model = new RepositoryLibraryPropertiesModel( library.getVersion(), true /*downloadSources*/, true /*downloadJavaDocs*/); IdeaModifiableModelsProvider modifiableModelsProvider = new IdeaModifiableModelsProvider(); final ModifiableRootModel modifiableModel = ModuleRootManager.getInstance(module).getModifiableModel(); RepositoryLibrarySupport librarySupport = new RepositoryLibrarySupport(module.getProject(), libraryDescription, model); librarySupport.addSupport(module, modifiableModel, modifiableModelsProvider); ApplicationManager.getApplication().runWriteAction(modifiableModel::commit); LibraryTable.ModifiableModel libraryTableModifiableModel = ModifiableModelsProvider.SERVICE .getInstance() .getLibraryTableModifiableModel(module.getProject()); return libraryTableModifiableModel.getLibraryByName(library.toMavenDisplayVersion()); } }
private void removeLibraryIfNeeded() { ApplicationManager.getApplication().assertIsDispatchThread(); ModifiableModelsProvider modelsProvider = ModifiableModelsProvider.SERVICE.getInstance(); ModifiableRootModel model = modelsProvider.getModuleModifiableModel(myModule); LibraryOrderEntry ballerinaLibraryEntry = OrderEntryUtil.findLibraryOrderEntry(model, getLibraryName()); if (ballerinaLibraryEntry != null) { ApplicationManager.getApplication().runWriteAction(() -> { Library library = ballerinaLibraryEntry.getLibrary(); if (library != null) { LibraryTable table = library.getTable(); if (table != null) { table.removeLibrary(library); model.removeOrderEntry(ballerinaLibraryEntry); modelsProvider.commitModuleModifiableModel(model); } } else { modelsProvider.disposeModuleModifiableModel(model); } }); } else { ApplicationManager.getApplication().runWriteAction(() -> modelsProvider.disposeModuleModifiableModel(model)); } }
private void removeLibraryIfNeeded() { ApplicationManager.getApplication().assertIsDispatchThread(); ModifiableModelsProvider modelsProvider = ModifiableModelsProvider.SERVICE.getInstance(); ModifiableRootModel model = modelsProvider.getModuleModifiableModel(myModule); LibraryOrderEntry goLibraryEntry = OrderEntryUtil.findLibraryOrderEntry(model, getLibraryName()); if (goLibraryEntry != null) { ApplicationManager.getApplication().runWriteAction(() -> { Library library = goLibraryEntry.getLibrary(); if (library != null) { LibraryTable table = library.getTable(); if (table != null) { table.removeLibrary(library); model.removeOrderEntry(goLibraryEntry); modelsProvider.commitModuleModifiableModel(model); } } else { modelsProvider.disposeModuleModifiableModel(model); } }); } else { ApplicationManager.getApplication().runWriteAction(() -> modelsProvider.disposeModuleModifiableModel(model)); } }