private void updateProject(ServerConfiguration serverConfiguration, String projectKey, List<Project> projects, TaskProgressMonitor monitor) { engine.updateProject(serverConfiguration, projectKey, monitor); log.log("Project '" + projectKey + "' in server binding '" + server.getName() + "' updated", LogOutput.Level.INFO); projects.forEach(this::updateModules); projects.forEach(ServerUpdateTask::analyzeOpenFiles); }
@Override public void updateModule(ModuleUpdateReq request, StreamObserver<Void> response) { try { ServerConfiguration serverConfig = transformServerConfig(request.getServerConfig()); engine.updateProject(serverConfig, request.getModuleKey(), null); response.onNext(Void.newBuilder().build()); response.onCompleted(); } catch (Exception e) { LOGGER.error("updateProject", e); response.onError(e); } }
@Override public synchronized void updateProjectStorage(String projectKey, IProgressMonitor monitor) { client.updateProject(getConfig(), projectKey, new WrappedProgressMonitor(monitor, "Update configuration from server '" + getId() + "' for project '" + projectKey + "'")); getBoundProjects(projectKey).forEach(p -> { ProjectBinding projectBinding = client.calculatePathPrefixes(projectKey, p.files().stream().map(ISonarLintFile::getProjectRelativePath).collect(toList())); String idePathPrefix = projectBinding.idePathPrefix(); String sqPathPrefix = projectBinding.sqPathPrefix(); SonarLintLogger.get().debug("Detected prefixes for " + p.getName() + ":\n IDE prefix: " + idePathPrefix + "\n Server side prefix: " + sqPathPrefix); SonarLintProjectConfiguration config = SonarLintCorePlugin.loadConfig(p); config.setProjectBinding(new EclipseProjectBinding(getId(), projectKey, sqPathPrefix, idePathPrefix)); SonarLintCorePlugin.saveConfig(p, config); }); // Some prefix/suffix might have been changed notifyAllListeners(); }