use of org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class ConnectedStaleStorageMediumTest method test_stale_global.
@Test
public void test_stale_global() throws Exception {
writeUpdateStatus(storage, "0");
ConnectedSonarLintEngine sonarlint = new ConnectedSonarLintEngineImpl(config);
assertThat(sonarlint.getState()).isEqualTo(State.NEED_UPDATE);
assertThat(sonarlint.getGlobalStorageStatus()).isNotNull();
assertThat(sonarlint.getModuleStorageStatus("foo")).isNull();
try {
sonarlint.allModulesByKey();
fail("Expected exception");
} catch (Exception e) {
assertThat(e).isInstanceOf(GlobalUpdateRequiredException.class).hasMessage("Please update server 'localhost'");
}
try {
sonarlint.getRuleDetails("rule");
fail("Expected exception");
} catch (Exception e) {
assertThat(e).isInstanceOf(GlobalUpdateRequiredException.class).hasMessage("Please update server 'localhost'");
}
try {
sonarlint.analyze(new ConnectedAnalysisConfiguration(null, baseDir.toPath(), temp.newFolder().toPath(), Collections.<ClientInputFile>emptyList(), ImmutableMap.<String, String>of()), mock(IssueListener.class), null, null);
fail("Expected exception");
} catch (Exception e) {
assertThat(e).isInstanceOf(GlobalUpdateRequiredException.class).hasMessage("Please update server 'localhost'");
}
}
use of org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class ConnectedSonarLintImpl method start.
@Override
public void start(ConnectedConfiguration requestConfig, StreamObserver<Void> response) {
if (engine != null) {
engine.stop(false);
engine = null;
}
try {
Builder builder = ConnectedGlobalConfiguration.builder();
if (requestConfig.getHomePath() != null) {
builder.setSonarLintUserHome(Paths.get(requestConfig.getHomePath()));
}
builder.setLogOutput(logOutput).setServerId(requestConfig.getStorageId());
engine = new ConnectedSonarLintEngineImpl(builder.build());
response.onNext(Void.newBuilder().build());
response.onCompleted();
} catch (Exception e) {
LOGGER.error("Error registering", e);
response.onError(e);
}
}
use of org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class BrokenStorageMissingPluginMediumTest method prepare.
@BeforeClass
public static void prepare() throws Exception {
Path slHome = temp.newFolder().toPath();
Path pluginCache = slHome.resolve("plugins");
/*
* This storage contains one server id "local" with references to java and javascript plugins but javascript is not in cache
*/
Path storage = Paths.get(BrokenStorageMissingPluginMediumTest.class.getResource("/sample-storage").toURI());
Path tmpStorage = slHome.resolve("storage");
FileUtils.copyDirectory(storage.toFile(), tmpStorage.toFile());
PluginCache cache = PluginCache.create(pluginCache);
PluginReferences.Builder builder = PluginReferences.newBuilder();
builder.addReference(PluginReference.newBuilder().setFilename(PluginLocator.SONAR_JAVASCRIPT_PLUGIN_JAR).setHash(PluginLocator.SONAR_JAVASCRIPT_PLUGIN_JAR_HASH).setKey("javascript").build());
builder.addReference(PluginReference.newBuilder().setFilename(PluginLocator.SONAR_JAVA_PLUGIN_JAR).setHash(PluginLocator.SONAR_JAVA_PLUGIN_JAR_HASH).setKey("java").build());
cache.get(PluginLocator.SONAR_JAVA_PLUGIN_JAR, PluginLocator.SONAR_JAVA_PLUGIN_JAR_HASH, new Copier() {
@Override
public void copy(String filename, Path toFile) throws IOException {
FileUtils.copyURLToFile(PluginLocator.getJavaPluginUrl(), toFile.toFile());
}
});
ProtobufUtil.writeToFile(builder.build(), tmpStorage.resolve("local").resolve("global").resolve(StoragePaths.PLUGIN_REFERENCES_PB));
ConnectedGlobalConfiguration config = ConnectedGlobalConfiguration.builder().setServerId("local").setSonarLintUserHome(slHome).setStorageRoot(tmpStorage).setLogOutput(createNoOpLogOutput()).build();
sonarlint = new ConnectedSonarLintEngineImpl(config);
baseDir = temp.newFolder();
}
use of org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class ConnectedIssueExclusionsMediumTest method prepare.
@BeforeClass
public static void prepare() throws Exception {
Path slHome = temp.newFolder().toPath();
Path pluginCache = slHome.resolve("plugins");
/*
* This storage contains one server id "local" and two modules: "test-project" (with an empty QP) and "test-project-2" (with default QP)
*/
Path storage = Paths.get(ConnectedIssueExclusionsMediumTest.class.getResource("/sample-storage").toURI());
Path tmpStorage = slHome.resolve("storage");
FileUtils.copyDirectory(storage.toFile(), tmpStorage.toFile());
PluginCache cache = PluginCache.create(pluginCache);
PluginReferences.Builder builder = PluginReferences.newBuilder();
builder.addReference(PluginReference.newBuilder().setFilename(PluginLocator.SONAR_JAVA_PLUGIN_JAR).setHash(PluginLocator.SONAR_JAVA_PLUGIN_JAR_HASH).setKey("java").build());
cache.get(PluginLocator.SONAR_JAVA_PLUGIN_JAR, PluginLocator.SONAR_JAVA_PLUGIN_JAR_HASH, (filename, target) -> FileUtils.copyURLToFile(PluginLocator.getJavaPluginUrl(), target.toFile()));
ProtobufUtil.writeToFile(builder.build(), tmpStorage.resolve("local").resolve("global").resolve(StoragePaths.PLUGIN_REFERENCES_PB));
// update versions in test storage and create an empty stale module storage
writeModuleStatus(tmpStorage, "test-project", VersionUtils.getLibraryVersion());
writeModuleStatus(tmpStorage, JAVA_MODULE_KEY, VersionUtils.getLibraryVersion());
writeStatus(tmpStorage, VersionUtils.getLibraryVersion());
ConnectedGlobalConfiguration config = ConnectedGlobalConfiguration.builder().setServerId("local").setSonarLintUserHome(slHome).setStorageRoot(tmpStorage).setLogOutput(createNoOpLogOutput()).build();
sonarlint = new ConnectedSonarLintEngineImpl(config);
storagePaths = sonarlint.getGlobalContainer().getComponentByType(StoragePaths.class);
storageReader = sonarlint.getGlobalContainer().getComponentByType(StorageReader.class);
originalModuleConfig = storageReader.readModuleConfig(JAVA_MODULE_KEY);
baseDir = temp.newFolder();
}
use of org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl in project sonarlint-core by SonarSource.
the class LicenseTest method start.
@Before
public void start() {
FileUtils.deleteQuietly(sonarUserHome.toFile());
engine = new ConnectedSonarLintEngineImpl(ConnectedGlobalConfiguration.builder().setServerId("orchestrator").setSonarLintUserHome(sonarUserHome).setLogOutput((msg, level) -> System.out.println(msg)).build());
licenses = new Licenses();
}
Aggregations