Search in sources :

Example 1 with ConnectedGlobalConfiguration

use of org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration in project sonarlint-core by SonarSource.

the class ConnectedEmptyStorageMediumTest method prepare.

@BeforeClass
public static void prepare() throws Exception {
    Path slHome = temp.newFolder().toPath();
    ConnectedGlobalConfiguration config = ConnectedGlobalConfiguration.builder().setServerId("localhost").setSonarLintUserHome(slHome).setLogOutput((msg, level) -> {
    }).build();
    sonarlint = new ConnectedSonarLintEngineImpl(config);
    baseDir = temp.newFolder();
}
Also used : Path(java.nio.file.Path) AfterClass(org.junit.AfterClass) BeforeClass(org.junit.BeforeClass) ImmutableMap(com.google.common.collect.ImmutableMap) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) ConnectedSonarLintEngineImpl(org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl) Test(org.junit.Test) GlobalUpdateRequiredException(org.sonarsource.sonarlint.core.client.api.exceptions.GlobalUpdateRequiredException) ConnectedAnalysisConfiguration(org.sonarsource.sonarlint.core.client.api.connected.ConnectedAnalysisConfiguration) ClientInputFile(org.sonarsource.sonarlint.core.client.api.common.analysis.ClientInputFile) ConnectedGlobalConfiguration(org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration) File(java.io.File) IssueListener(org.sonarsource.sonarlint.core.client.api.common.analysis.IssueListener) Assertions.fail(org.assertj.core.api.Assertions.fail) ClassRule(org.junit.ClassRule) Path(java.nio.file.Path) Collections(java.util.Collections) State(org.sonarsource.sonarlint.core.client.api.connected.ConnectedSonarLintEngine.State) TemporaryFolder(org.junit.rules.TemporaryFolder) ConnectedSonarLintEngine(org.sonarsource.sonarlint.core.client.api.connected.ConnectedSonarLintEngine) Mockito.mock(org.mockito.Mockito.mock) ConnectedSonarLintEngineImpl(org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl) ConnectedGlobalConfiguration(org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration) BeforeClass(org.junit.BeforeClass)

Example 2 with ConnectedGlobalConfiguration

use of org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration in project sonarlint-core by SonarSource.

the class ConnectedFileExclusionsMediumTest method prepare.

@BeforeClass
public static void prepare() throws Exception {
    Path slHome = temp.newFolder().toPath();
    /*
     * 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(ConnectedFileExclusionsMediumTest.class.getResource("/sample-storage").toURI());
    Path tmpStorage = slHome.resolve("storage");
    FileUtils.copyDirectory(storage.toFile(), tmpStorage.toFile());
    PluginReferences.Builder builder = PluginReferences.newBuilder();
    ProtobufUtil.writeToFile(builder.build(), tmpStorage.resolve("local").resolve("global").resolve(StoragePaths.PLUGIN_REFERENCES_PB));
    writeModuleStatus(tmpStorage, 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);
    baseDir = temp.newFolder();
}
Also used : Path(java.nio.file.Path) PluginReferences(org.sonarsource.sonarlint.core.proto.Sonarlint.PluginReferences) ConnectedSonarLintEngineImpl(org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl) ConnectedGlobalConfiguration(org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration) BeforeClass(org.junit.BeforeClass)

Example 3 with ConnectedGlobalConfiguration

use of org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration in project sonarlint-core by SonarSource.

the class ConnectedIssueMediumTest 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(ConnectedIssueMediumTest.class.getResource("/sample-storage").toURI());
    Path tmpStorage = slHome.resolve("storage");
    FileUtils.copyDirectory(storage.toFile(), tmpStorage.toFile());
    Files.move(tmpStorage.resolve("local"), tmpStorage.resolve(StoragePaths.encodeForFs(SERVER_ID)));
    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());
    cache.get(PluginLocator.SONAR_JAVASCRIPT_PLUGIN_JAR, PluginLocator.SONAR_JAVASCRIPT_PLUGIN_JAR_HASH, new Copier() {

        @Override
        public void copy(String filename, Path toFile) throws IOException {
            FileUtils.copyURLToFile(PluginLocator.getJavaScriptPluginUrl(), toFile.toFile());
        }
    });
    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(StoragePaths.encodeForFs(SERVER_ID)).resolve("global").resolve(StoragePaths.PLUGIN_REFERENCES_PB));
    // update versions in test storage and create an empty stale module storage
    writeModuleStatus(tmpStorage, "test-project", StoragePaths.STORAGE_VERSION);
    writeModuleStatus(tmpStorage, JAVA_MODULE_KEY, StoragePaths.STORAGE_VERSION);
    writeModuleStatus(tmpStorage, "stale_module", "0");
    writeStatus(tmpStorage, VersionUtils.getLibraryVersion());
    ConnectedGlobalConfiguration config = ConnectedGlobalConfiguration.builder().setServerId(SERVER_ID).setSonarLintUserHome(slHome).setStorageRoot(tmpStorage).setLogOutput(createNoOpLogOutput()).build();
    sonarlint = new ConnectedSonarLintEngineImpl(config);
    baseDir = temp.newFolder();
}
Also used : Path(java.nio.file.Path) PluginReferences(org.sonarsource.sonarlint.core.proto.Sonarlint.PluginReferences) Copier(org.sonarsource.sonarlint.core.plugin.cache.PluginCache.Copier) ConnectedSonarLintEngineImpl(org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl) PluginCache(org.sonarsource.sonarlint.core.plugin.cache.PluginCache) IOException(java.io.IOException) ConnectedGlobalConfiguration(org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration) BeforeClass(org.junit.BeforeClass)

Example 4 with ConnectedGlobalConfiguration

use of org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration in project sonarlint-core by SonarSource.

the class StorageContainer method doAfterStart.

@Override
protected void doAfterStart() {
    ConnectedGlobalConfiguration config = getComponentByType(ConnectedGlobalConfiguration.class);
    GlobalStorageStatus updateStatus = getComponentByType(StorageContainerHandler.class).getGlobalStorageStatus();
    if (updateStatus != null) {
        LOG.info("Using storage for server '{}' (last update {})", config.getServerId(), DATE_FORMAT.format(updateStatus.getLastUpdateDate()));
        installPlugins();
    } else {
        LOG.warn("No storage for server '{}'. Please update.", config.getServerId());
    }
    this.globalExtensionContainer = new GlobalExtensionContainer(this);
    globalExtensionContainer.startComponents();
}
Also used : GlobalExtensionContainer(org.sonarsource.sonarlint.core.container.global.GlobalExtensionContainer) GlobalStorageStatus(org.sonarsource.sonarlint.core.client.api.connected.GlobalStorageStatus) ConnectedGlobalConfiguration(org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration)

Example 5 with ConnectedGlobalConfiguration

use of org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration 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();
}
Also used : Path(java.nio.file.Path) PluginReferences(org.sonarsource.sonarlint.core.proto.Sonarlint.PluginReferences) Copier(org.sonarsource.sonarlint.core.plugin.cache.PluginCache.Copier) ConnectedSonarLintEngineImpl(org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl) PluginCache(org.sonarsource.sonarlint.core.plugin.cache.PluginCache) IOException(java.io.IOException) ConnectedGlobalConfiguration(org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration) BeforeClass(org.junit.BeforeClass)

Aggregations

ConnectedGlobalConfiguration (org.sonarsource.sonarlint.core.client.api.connected.ConnectedGlobalConfiguration)6 Path (java.nio.file.Path)5 BeforeClass (org.junit.BeforeClass)5 ConnectedSonarLintEngineImpl (org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl)5 PluginReferences (org.sonarsource.sonarlint.core.proto.Sonarlint.PluginReferences)4 PluginCache (org.sonarsource.sonarlint.core.plugin.cache.PluginCache)3 IOException (java.io.IOException)2 Copier (org.sonarsource.sonarlint.core.plugin.cache.PluginCache.Copier)2 ImmutableMap (com.google.common.collect.ImmutableMap)1 File (java.io.File)1 Collections (java.util.Collections)1 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)1 Assertions.fail (org.assertj.core.api.Assertions.fail)1 AfterClass (org.junit.AfterClass)1 ClassRule (org.junit.ClassRule)1 Test (org.junit.Test)1 TemporaryFolder (org.junit.rules.TemporaryFolder)1 Mockito.mock (org.mockito.Mockito.mock)1 ClientInputFile (org.sonarsource.sonarlint.core.client.api.common.analysis.ClientInputFile)1 IssueListener (org.sonarsource.sonarlint.core.client.api.common.analysis.IssueListener)1