use of org.sonarsource.sonarlint.core.container.storage.ServerProjectsStore in project sonarlint-core by SonarSource.
the class GlobalStorageUpdateExecutor method update.
public void update(ServerApiHelper serverApiHelper, ProgressMonitor progress) {
Path temp;
try {
temp = Files.createTempDirectory("sonarlint-global-storage");
} catch (IOException e) {
throw new IllegalStateException("Unable to create temp directory", e);
}
try {
StorageFolder storageFolder = new StorageFolder.Default(temp);
var serverInfoStore = new ServerInfoStore(storageFolder);
var serverProjectsStore = new ServerProjectsStore(storageFolder);
var storageStatusStore = new StorageStatusStore(storageFolder);
progress.setProgressAndCheckCancel("Checking server version and status", 0.1f);
var serverStatus = new ServerVersionAndStatusChecker(serverApiHelper).checkVersionAndStatus();
serverInfoStore.store(serverStatus);
progress.setProgressAndCheckCancel("Fetching list of projects", 0.8f);
var projectListDownloader = new ProjectListDownloader(serverApiHelper, serverProjectsStore);
projectListDownloader.fetch(progress.subProgress(0.8f, 1.0f, "Fetching list of projects"));
progress.setProgressAndCheckCancel("Finalizing...", 1.0f);
progress.executeNonCancelableSection(() -> {
var storageStatus = StorageStatus.newBuilder().setStorageVersion(ProjectStoragePaths.STORAGE_VERSION).setSonarlintCoreVersion(VersionUtils.getLibraryVersion()).setUpdateTimestamp(new Date().getTime()).build();
storageStatusStore.store(storageStatus);
serverStorage.replaceStorageWith(temp);
});
} finally {
org.apache.commons.io.FileUtils.deleteQuietly(temp.toFile());
}
}
use of org.sonarsource.sonarlint.core.container.storage.ServerProjectsStore in project sonarlint-core by SonarSource.
the class ProjectListDownloaderTests method update_modules_with_org.
@Test
void update_modules_with_org(@TempDir Path tempDir) {
var serverProjectsStore = new ServerProjectsStore(new StorageFolder.Default(tempDir));
mockServer.addResponseFromResource("/api/components/search.protobuf?qualifiers=TRK&organization=myOrg&ps=500&p=1", "/update/searchmodulesp1.pb");
var moduleListUpdate = new ProjectListDownloader(mockServer.serverApiHelper("myOrg"), serverProjectsStore);
moduleListUpdate.fetch(new ProgressMonitor(null));
var moduleList = ProtobufUtil.readFile(tempDir.resolve(ServerProjectsStore.PROJECT_LIST_PB), ProjectList.parser());
assertThat(moduleList.getProjectsByKeyMap()).hasSize(282);
}
use of org.sonarsource.sonarlint.core.container.storage.ServerProjectsStore in project sonarlint-core by SonarSource.
the class ProjectListDownloaderTests method update_modules.
@Test
void update_modules(@TempDir Path tempDir) {
var serverProjectsStore = new ServerProjectsStore(new StorageFolder.Default(tempDir));
mockServer.addResponseFromResource("/api/components/search.protobuf?qualifiers=TRK&ps=500&p=1", "/update/searchmodulesp1.pb");
var moduleListUpdate = new ProjectListDownloader(mockServer.serverApiHelper(), serverProjectsStore);
moduleListUpdate.fetch(new ProgressMonitor(null));
var moduleList = ProtobufUtil.readFile(tempDir.resolve(ServerProjectsStore.PROJECT_LIST_PB), ProjectList.parser());
assertThat(moduleList.getProjectsByKeyMap()).hasSize(282);
}
Aggregations