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 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 addLibsToModule( @NotNull final ModifiableRootModel modifiableRootModel, @NotNull IdeModifiableModelsProvider modifiableModelsProvider, @NotNull final String libraryName, final boolean export ) { Validate.notNull(modifiableRootModel); final LibraryTable.ModifiableModel libraryTableModifiableModel = modifiableModelsProvider .getModifiableProjectLibrariesModel(); Library library = libraryTableModifiableModel.getLibraryByName(libraryName); if (null == library) { library = libraryTableModifiableModel.createLibrary(libraryName); } modifiableRootModel.addLibraryEntry(library); if (export) { setLibraryEntryExported(modifiableRootModel, library); } }
@Override public void addDevServerToModuleDependencies(@NotNull ModifiableRootModel rootModel) { final ApplicationServer appServer = getOrCreateAppServer(); if (appServer != null && !appServer.isDisposed()) { rootModel.addLibraryEntry(appServer.getLibrary()).setScope(DependencyScope.PROVIDED); } }
/** * 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 run(@NotNull Result result) throws Throwable { if (librariesToAdd != null && !librariesToAdd.isEmpty()) { for (AppEngineStandardMavenLibrary libraryToAdd : librariesToAdd) { Library mavenLibrary = MavenRepositoryLibraryDownloader.getInstance() .downloadLibrary(module, libraryToAdd); if (mavenLibrary != null) { rootModel.addLibraryEntry(mavenLibrary).setScope(libraryToAdd.getScope()); AppEngineStandardWebIntegration.getInstance() .addLibraryToArtifact(mavenLibrary, webArtifact, module.getProject()); UsageTrackerService.getInstance() .trackEvent(GctTracking.APP_ENGINE_ADD_LIBRARY) .addMetadata(GctTracking.METADATA_LABEL_KEY, libraryToAdd.name()) .ping(); } else { LOG.warn("Failed to load library: " + libraryToAdd.getDisplayName()); } } } } }.execute();
@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(); } });