public void fetchAndMatchFile(ProjectBinding projectBinding, VirtualFile virtualFile, String relativePath) { List<ServerIssue> serverIssues = engine.getServerIssues(projectBinding, relativePath); matchFile(virtualFile, serverIssues); }
public void update(ConnectedSonarLintEngine engine, ProjectBinding projectBinding, Collection<String> fileKeys) { update(fileKeys, fileKey -> engine.getServerIssues(projectBinding, fileKey)); }
private Collection<Trackable> trackServerIssuesSync(Server server, ISonarLintFile file, Collection<Trackable> tracked, boolean updateServerIssues) { ServerConfiguration serverConfiguration = server.getConfig(); ConnectedSonarLintEngine engine = server.getEngine(); List<ServerIssue> serverIssues; if (updateServerIssues) { serverIssues = ServerIssueUpdater.fetchServerIssues(serverConfiguration, engine, binding, file); } else { serverIssues = engine.getServerIssues(binding, file.getProjectRelativePath()); } Collection<Trackable> serverIssuesTrackable = serverIssues.stream().map(ServerIssueTrackable::new).collect(Collectors.toList()); return IssueTracker.matchAndTrackServerIssues(serverIssuesTrackable, tracked); }
private List<ServerIssue> fetchServerIssues(ServerConfiguration serverConfiguration, ConnectedSonarLintEngine engine, ProjectBinding projectBinding, String fileKey) { try { logger.debug("fetchServerIssues projectKey=" + projectBinding.projectKey() + ", fileKey=" + fileKey); return engine.downloadServerIssues(serverConfiguration, projectBinding, fileKey); } catch (DownloadException e) { logger.debug("failed to download server issues", e); return engine.getServerIssues(projectBinding, fileKey); } } }
private List<ServerIssue> fetchServerIssuesForFile(ProjectBinding projectBinding, String relativePath) { try { ServerConfiguration serverConfiguration = SonarLintUtils.getServerConfiguration(server, CONNECTION_TIMEOUT, READ_TIMEOUT); LOGGER.debug("fetchServerIssues projectKey=" + projectBinding.projectKey() + ", filepath=" + relativePath); return engine.downloadServerIssues(serverConfiguration, projectBinding, relativePath); } catch (DownloadException e) { console.info(e.getMessage()); return engine.getServerIssues(projectBinding, relativePath); } } }
@Test public void testDownloadAllServerIssues() throws InvalidBindingException { List<VirtualFile> files = new LinkedList<>(); for (int i = 0; i < 10; i++) { VirtualFile file = mock(VirtualFile.class); when(appUtils.getPathRelativeToProjectBaseDir(project, file)).thenReturn("MyFile" + i + ".txt"); files.add(file); } ServerIssue serverIssue = mock(ServerIssue.class); // mock issues fetched when(engine.getServerIssues(eq(PROJECT_BINDING), anyString())).thenReturn(Collections.singletonList(serverIssue)); // run settings.setBindingEnabled(true); updater.initComponent(); updater.fetchAndMatchServerIssues(Collections.singletonMap(module, files), indicator, false); verify(issueManager, timeout(3000).times(10)).matchWithServerIssues(any(VirtualFile.class), argThat(issues -> issues.size() == 1)); verify(engine).downloadServerIssues(any(ServerConfiguration.class), eq(PROJECT_KEY)); verify(bindingManager).getConnectedEngine(); verify(console, never()).error(anyString()); verify(console, never()).error(anyString(), any(Throwable.class)); } }
public static List<ServerIssue> fetchServerIssues(ServerConfiguration serverConfiguration, ConnectedSonarLintEngine engine, ProjectBinding projectBinding, ISonarLintFile file) { String filePath = file.getProjectRelativePath(); try { SonarLintLogger.get().debug("Download server issues for " + file.getName()); return engine.downloadServerIssues(serverConfiguration, projectBinding, filePath); } catch (DownloadException e) { SonarLintLogger.get().info(e.getMessage()); return engine.getServerIssues(projectBinding, filePath); } }