private static void updateModules(@NotNull Project project, @NotNull Library lib, boolean remove) { Module[] modules = ModuleManager.getInstance(project).getModules(); for (Module module : modules) { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); if (!remove) { if (model.findLibraryOrderEntry(lib) == null) { LibraryOrderEntry entry = model.addLibraryEntry(lib); entry.setScope(DependencyScope.PROVIDED); } } else { LibraryOrderEntry entry = model.findLibraryOrderEntry(lib); if (entry != null) { model.removeOrderEntry(entry); } } model.commit(); } }
private void addContentRoot(@NotNull VirtualFile contentRoot) { ModifiableRootModel model = ModuleRootManager.getInstance(myModule).getModifiableModel(); try { model.addContentEntry(contentRoot); contentRootsToClean.add(contentRoot); model.commit(); } finally { if (!model.isDisposed()) model.dispose(); } }
private static void updateModules(@NotNull Project project, @NotNull Library lib, boolean remove) { Module[] modules = ModuleManager.getInstance(project).getModules(); for (Module module : modules) { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); if (!remove) { if (model.findLibraryOrderEntry(lib) == null) { LibraryOrderEntry entry = model.addLibraryEntry(lib); entry.setScope(DependencyScope.PROVIDED); } } else { LibraryOrderEntry entry = model.findLibraryOrderEntry(lib); if (entry != null) { model.removeOrderEntry(entry); } } model.commit(); } }
/** * Add global protobuf library to given module. Visible for testing. */ public void addLibrary(Module module) { ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module); ModifiableRootModel modifiableRootModel = moduleRootManager.getModifiableModel(); AtomicBoolean found = new AtomicBoolean(false); OrderEnumerator.orderEntries(module).forEachLibrary(library1 -> { if (LIB_NAME.equals(library1.getName())) { found.set(true); return false; } return true; }); if (!found.get()) { ApplicationManager.getApplication().runWriteAction(() -> { modifiableRootModel.addLibraryEntry(globalLibrary); modifiableRootModel.commit(); }); } }
@Override public void afterLibraryAdded(final Library addedLibrary) { Optional<AppEngineStandardMavenLibrary> libraryOptional = AppEngineStandardMavenLibrary.getLibraryByMavenDisplayName(addedLibrary.getName()); libraryOptional.ifPresent( library -> { final DependencyScope scope = library.getScope(); ApplicationManager.getApplication() .runWriteAction( () -> { ModifiableRootModel model = ModuleRootManager.getInstance(context.getModule()).getModifiableModel(); model.addLibraryEntry(addedLibrary); Arrays.stream(model.getOrderEntries()) .filter( orderEntry -> orderEntry.getPresentableName().equals(addedLibrary.getName())) .forEach( orderEntry -> ((ExportableOrderEntry) orderEntry).setScope(scope)); model.commit(); }); Artifact artifact = AppEngineStandardSupportProvider.findOrCreateWebArtifact( (AppEngineStandardFacet) context.getFacet()); AppEngineStandardWebIntegration.getInstance() .addLibraryToArtifact(addedLibrary, artifact, context.getProject()); appEngineStandardLibraryPanel.toggleLibrary(library, true /* select */); }); }
@Override protected void doOKAction() { if (getOKAction().isEnabled()) { ApplicationManager.getApplication() .runWriteAction( () -> { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); IdeaModifiableModelsProvider modelsProvider = new IdeaModifiableModelsProvider(); moduleConfigurable.addSupport(module, model, modelsProvider); model.commit(); }); } super.doOKAction(); }
private static void toggleGrammarKitSrc(Module module, String testDataPath) { String absolutePath = new File("").getAbsolutePath(); JavaPsiFacade facade = JavaPsiFacade.getInstance(module.getProject()); boolean add = facade.findPackage("org.intellij.grammar.psi") == null; if (add) { VfsRootAccess.allowRootAccess(absolutePath); } else { VfsRootAccess.disallowRootAccess(absolutePath); } WriteAction.run(() -> { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); String supportUrl = getUrl(testDataPath + "/../../src"); String genUrl = getUrl(testDataPath + "/../../gen"); if (add) { model.addContentEntry(supportUrl).addSourceFolder(supportUrl, false); model.addContentEntry(genUrl).addSourceFolder(genUrl, false); } else { for (ContentEntry entry : model.getContentEntries()) { if (supportUrl.equals(entry.getUrl()) || genUrl.equals(entry.getUrl())) { model.removeContentEntry(entry); } } } model.commit(); }); assertTrue("GrammarKit src problem", add == (null != facade.findPackage("org.intellij.grammar.psi"))); }
@Override public void run() { final LibraryTable table = LibraryTablesRegistrar.getInstance() .getLibraryTableByLevel( LibraryTablesRegistrar.APPLICATION_LEVEL, myModule.getProject()); assert table != null; final LibraryTable.ModifiableModel tableModel = table.getModifiableModel(); final Library library = tableModel.createLibrary("endpoints-lib"); final Library.ModifiableModel libraryModel = library.getModifiableModel(); libraryModel.addJarDirectory(pluginsDir, true); libraryModel.commit(); tableModel.commit(); ModifiableRootModel rootModel = ModuleRootManager.getInstance(myModule).getModifiableModel(); Library jar = table.getLibraries()[0]; rootModel.addLibraryEntry(jar); // Endpoint is the only jar added rootModel.commit(); } });