From a675dea7af08166928aa2ab9b0cde5312af4860e Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Wed, 8 Mar 2023 13:05:18 +0200 Subject: [PATCH 1/8] build(deps): bump intellij plugin from 1.9.0 to 1.13.2 Signed-off-by: Tomer Figenblat --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 77e1a2e..018073e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { - id "org.jetbrains.intellij" version "1.9.0" + id "org.jetbrains.intellij" version "1.13.2" } repositories { @@ -17,7 +17,7 @@ apply plugin: 'java' apply plugin: 'jacoco' sourceCompatibility = '1.8' -targetCompatibility = '1.8' +targetCompatibility = '1.1' intellij { version = ideaVersion //for a full list of IntelliJ IDEA releases please see https://www.jetbrains.com/intellij-repository/releases From 325a394d493b2f760f54a1b52f59da0383ba675c Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Wed, 8 Mar 2023 13:06:45 +0200 Subject: [PATCH 2/8] build: bump java version from 1.8 to 11 Signed-off-by: Tomer Figenblat --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 018073e..cac271a 100644 --- a/build.gradle +++ b/build.gradle @@ -16,8 +16,8 @@ apply plugin: 'org.jetbrains.intellij' apply plugin: 'java' apply plugin: 'jacoco' -sourceCompatibility = '1.8' -targetCompatibility = '1.1' +sourceCompatibility = '11' +targetCompatibility = '11' intellij { version = ideaVersion //for a full list of IntelliJ IDEA releases please see https://www.jetbrains.com/intellij-repository/releases From 6003135f4b81d7c3ec8b14b78275148709a3d667 Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Wed, 8 Mar 2023 13:15:34 +0200 Subject: [PATCH 3/8] chore: removed unused source file look like the GHReleaseDownloader is not used, it functionality is delivered by GitHubRelease and GitHubReleaseDownloader. Signed-off-by: Tomer Figenblat --- .../analytics/GHReleaseDownloader.java | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 src/main/java/org/jboss/tools/intellij/analytics/GHReleaseDownloader.java diff --git a/src/main/java/org/jboss/tools/intellij/analytics/GHReleaseDownloader.java b/src/main/java/org/jboss/tools/intellij/analytics/GHReleaseDownloader.java deleted file mode 100644 index 2bdadf6..0000000 --- a/src/main/java/org/jboss/tools/intellij/analytics/GHReleaseDownloader.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.jboss.tools.intellij.analytics; - -import org.kohsuke.github.GitHub; -import org.kohsuke.github.GHAsset; -import org.kohsuke.github.GHRepository; -import org.kohsuke.github.GHRelease; -import java.io.IOException; - -public class GHReleaseDownloader { - private final GHRepository repo; - - public GHReleaseDownloader(final String repository) throws IOException { - final GitHub github = GitHub.connectAnonymously(); - this.repo = github.getRepository(repository); - } - - public String getLatestRelease() throws IOException { - return this.repo.getLatestRelease().getTagName(); - } - - public String getDownloadUri(final String releaseLabel, final String fileLabel) throws IOException { - final GHRelease release = this.repo.getReleaseByTagName(releaseLabel); - final GHAsset asset = release.listAssets() - .toList() - .stream() - .filter(a -> a.getLabel().equals(fileLabel)) - .findFirst() - .orElseThrow(() -> new IOException(fileLabel + ": unable to download")); - return asset.getBrowserDownloadUrl(); - } -} From 45d3cb600fc23534c4c03010bf9a52e1300300ac Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Wed, 8 Mar 2023 15:25:42 +0200 Subject: [PATCH 4/8] chore: the file field in the storage annotation id depercated, replaced by value Signed-off-by: Tomer Figenblat --- src/main/java/org/jboss/tools/intellij/analytics/Settings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jboss/tools/intellij/analytics/Settings.java b/src/main/java/org/jboss/tools/intellij/analytics/Settings.java index 1c4b57b..0e83625 100644 --- a/src/main/java/org/jboss/tools/intellij/analytics/Settings.java +++ b/src/main/java/org/jboss/tools/intellij/analytics/Settings.java @@ -15,7 +15,7 @@ @State( name = "Settings", storages = { - @Storage(file = "analytics.settings.xml", roamingType = RoamingType.DISABLED) + @Storage(value = "analytics.settings.xml", roamingType = RoamingType.DISABLED) }) public final class Settings implements ICookie, PersistentStateComponent { From b00b533483a5d5295b422abad4d2e47cc211569e Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Wed, 8 Mar 2023 17:09:30 +0200 Subject: [PATCH 5/8] chore: bump crda cli from 0.2.4 to 0.2.5 Signed-off-by: Tomer Figenblat --- .../java/org/jboss/tools/intellij/analytics/Platform.java | 6 +++--- .../java/org/jboss/tools/intellij/stackanalysis/Cli.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/jboss/tools/intellij/analytics/Platform.java b/src/main/java/org/jboss/tools/intellij/analytics/Platform.java index 41362d0..f5285ee 100644 --- a/src/main/java/org/jboss/tools/intellij/analytics/Platform.java +++ b/src/main/java/org/jboss/tools/intellij/analytics/Platform.java @@ -13,9 +13,9 @@ public class Platform { PluginId.getId("org.jboss.tools.intellij.analytics")).getPluginPath().toAbsolutePath().toString(); // Set LSP and CLI tarballs to be downloaded, CLI version is pinned to last stable version instead of latest. - private static final Platform WINDOWS = new Platform("analytics-lsp-win.exe", "crda_0.2.4_Windows_64bit.tar.gz"); - private static final Platform LINUX = new Platform("analytics-lsp-linux", "crda_0.2.4_Linux_64bit.tar.gz"); - private static final Platform MACOS = new Platform("analytics-lsp-macos", "crda_0.2.4_macOS_64bit.tar.gz"); + private static final Platform WINDOWS = new Platform("analytics-lsp-win.exe", "crda_0.2.5_Windows_64bit.tar.gz"); + private static final Platform LINUX = new Platform("analytics-lsp-linux", "crda_0.2.5_Linux_64bit.tar.gz"); + private static final Platform MACOS = new Platform("analytics-lsp-macos", "crda_0.2.5_macOS_64bit.tar.gz"); public String lspBundleName; public String cliTarBallName; diff --git a/src/main/java/org/jboss/tools/intellij/stackanalysis/Cli.java b/src/main/java/org/jboss/tools/intellij/stackanalysis/Cli.java index e8a1a59..bf83a05 100644 --- a/src/main/java/org/jboss/tools/intellij/stackanalysis/Cli.java +++ b/src/main/java/org/jboss/tools/intellij/stackanalysis/Cli.java @@ -18,9 +18,9 @@ public class Cli { public String cliReleaseTag; // Set name of CLI binary and release tag - private static final Cli WINDOWS = new Cli("crda.exe", "v0.2.4"); - private static final Cli LINUX = new Cli("crda", "v0.2.4"); - private static final Cli MACOS = new Cli("crda", "v0.2.4"); + private static final Cli WINDOWS = new Cli("crda.exe", "v0.2.5"); + private static final Cli LINUX = new Cli("crda", "v0.2.5"); + private static final Cli MACOS = new Cli("crda", "v0.2.5"); private Cli(String cliBinaryName, String cliReleaseTag) { this.cliBinaryName = cliBinaryName; From f0f899bf64f06dd1d69d8c8c6e21fff0f596a6e2 Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Thu, 16 Mar 2023 11:19:03 +0200 Subject: [PATCH 6/8] chore: update gradle distribution url from 7.6 to version 8.0.2 Signed-off-by: Tomer Figenblat --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2b22d05..bdc9a83 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 37a2c9f1eea609825d56d361526cdc8dfc73b84e Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Thu, 16 Mar 2023 13:46:53 +0200 Subject: [PATCH 7/8] build(deps): bump org.kohshuke.github-api from 1.306 to 1.314 Signed-off-by: Tomer Figenblat --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index cac271a..032a28a 100644 --- a/build.gradle +++ b/build.gradle @@ -37,7 +37,7 @@ publishPlugin { dependencies { implementation 'com.github.ballerina-platform:lsp4intellij:master-SNAPSHOT' - implementation 'org.kohsuke:github-api:1.306' + implementation 'org.kohsuke:github-api:1.314' implementation 'org.apache.commons:commons-compress:1.21' testImplementation('junit:junit:4.13.1') } From de20eb7757c485234225813ecb987faccd1c9b01 Mon Sep 17 00:00:00 2001 From: Tomer Figenblat Date: Thu, 16 Mar 2023 11:19:45 +0200 Subject: [PATCH 8/8] fix: version 2022.3 breaks by marking PreloadingActivity for internal usage Signed-off-by: Tomer Figenblat --- build.gradle | 4 +-- .../analytics/GitHubReleaseDownloader.java | 6 ++-- .../analytics/PreloadLanguageServer.java | 25 +++++++++------ .../intellij/stackanalysis/PreloadCli.java | 27 ++++++---------- src/main/resources/META-INF/plugin.xml | 32 +++++++++++++------ 5 files changed, 53 insertions(+), 41 deletions(-) diff --git a/build.gradle b/build.gradle index 032a28a..2316ce2 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ targetCompatibility = '11' intellij { version = ideaVersion //for a full list of IntelliJ IDEA releases please see https://www.jetbrains.com/intellij-repository/releases pluginName = 'org.jboss.tools.intellij.analytics' - plugins = ['com.redhat.devtools.intellij.telemetry:0.0.2.18'] + plugins = ['com.redhat.devtools.intellij.telemetry:0.0.3.33'] updateSinceUntilBuild = false } @@ -36,7 +36,7 @@ publishPlugin { } dependencies { - implementation 'com.github.ballerina-platform:lsp4intellij:master-SNAPSHOT' + implementation 'com.github.ballerina-platform:lsp4intellij:0.95.1' implementation 'org.kohsuke:github-api:1.314' implementation 'org.apache.commons:commons-compress:1.21' testImplementation('junit:junit:4.13.1') diff --git a/src/main/java/org/jboss/tools/intellij/analytics/GitHubReleaseDownloader.java b/src/main/java/org/jboss/tools/intellij/analytics/GitHubReleaseDownloader.java index a8d57aa..f176049 100644 --- a/src/main/java/org/jboss/tools/intellij/analytics/GitHubReleaseDownloader.java +++ b/src/main/java/org/jboss/tools/intellij/analytics/GitHubReleaseDownloader.java @@ -3,7 +3,7 @@ import java.io.File; import java.io.IOException; -import com.intellij.openapi.progress.ProgressIndicator; +import com.intellij.openapi.progress.ProgressManager; import com.intellij.util.io.HttpRequests; import com.redhat.devtools.intellij.telemetry.core.service.TelemetryMessageBuilder.ActionMessage; import com.intellij.openapi.diagnostic.Logger; @@ -36,7 +36,7 @@ private boolean isNewRelease(final String releaseLabel) { } - public File download(final ProgressIndicator indicator) throws IOException { + public File download() throws IOException { final ActionMessage telemetry; final String latestReleaseTag; final File dest = new File(Platform.pluginDirectory, fileName); @@ -72,7 +72,7 @@ public File download(final ProgressIndicator indicator) throws IOException { HttpRequests .request(url) .productNameAsUserAgent() - .saveToFile(dest, indicator); + .saveToFile(dest, ProgressManager.getGlobalProgressIndicator()); dest.setExecutable(true); cookies.setValue(cookieName, latestReleaseTag); diff --git a/src/main/java/org/jboss/tools/intellij/analytics/PreloadLanguageServer.java b/src/main/java/org/jboss/tools/intellij/analytics/PreloadLanguageServer.java index 57f2348..568a876 100644 --- a/src/main/java/org/jboss/tools/intellij/analytics/PreloadLanguageServer.java +++ b/src/main/java/org/jboss/tools/intellij/analytics/PreloadLanguageServer.java @@ -4,13 +4,14 @@ import java.io.IOException; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.application.PreloadingActivity; -import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.startup.StartupActivity; +import org.jetbrains.annotations.NotNull; import org.wso2.lsp4intellij.IntellijLanguageClient; -public final class PreloadLanguageServer extends PreloadingActivity { +public final class PreloadLanguageServer implements StartupActivity.Background { private static final Logger log = Logger.getInstance(PreloadLanguageServer.class); private final ICookie cookies = ServiceManager.getService(Settings.class); @@ -27,11 +28,13 @@ private void attachLanguageClient(final File cliFile) { } @Override - public void preload(ProgressIndicator indicator) { + public void runActivity(@NotNull Project project) { if (ApplicationManager.getApplication().isUnitTestMode()) { return; } - log.debug("lsp preload called"); + + log.info("lsp preload called"); + try { final String devUrl = System.getenv("ANALYTICS_LSP_FILE_PATH"); File lspBundle; @@ -39,11 +42,13 @@ public void preload(ProgressIndicator indicator) { lspBundle = new File(devUrl); } else { final GitHubReleaseDownloader bundle = new GitHubReleaseDownloader( - Platform.current.lspBundleName, - cookies, - "fabric8-analytics/fabric8-analytics-lsp-server", - false); - lspBundle = bundle.download(indicator); + Platform.current.lspBundleName, + cookies, + "fabric8-analytics/fabric8-analytics-lsp-server", + false); + lspBundle = bundle.download(); + + log.info("lsp binary is ready for use."); } attachLanguageClient(lspBundle); } catch(IOException ex) { diff --git a/src/main/java/org/jboss/tools/intellij/stackanalysis/PreloadCli.java b/src/main/java/org/jboss/tools/intellij/stackanalysis/PreloadCli.java index 89e67f4..cceff92 100644 --- a/src/main/java/org/jboss/tools/intellij/stackanalysis/PreloadCli.java +++ b/src/main/java/org/jboss/tools/intellij/stackanalysis/PreloadCli.java @@ -11,11 +11,11 @@ package org.jboss.tools.intellij.stackanalysis; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.application.PreloadingActivity; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.progress.ProcessCanceledException; -import com.intellij.openapi.progress.ProgressIndicator; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.startup.StartupActivity; import org.jboss.tools.intellij.analytics.GitHubReleaseDownloader; import org.jboss.tools.intellij.analytics.ICookie; import org.jboss.tools.intellij.analytics.Platform; @@ -24,23 +24,16 @@ import java.io.IOException; - -public final class PreloadCli extends PreloadingActivity { +public final class PreloadCli implements StartupActivity.Background { private static final Logger logger = Logger.getInstance(PreloadCli.class); private final ICookie cookies = ServiceManager.getService(Settings.class); - /** - *

Activity need to be performed when plugin/IDE is started.

- * - * When IDE is started or plugin is installed setup prerequisites for plugin. - * - * @param indicator An object of ProgressIndicator - */ @Override - public void preload(@NotNull ProgressIndicator indicator) { + public void runActivity(@NotNull Project project) { if (ApplicationManager.getApplication().isUnitTestMode()) { return; } + logger.info("CLI preload is called"); try { @@ -50,13 +43,13 @@ public void preload(@NotNull ProgressIndicator indicator) { // If Env variable is not set download binary from GitHub Repo if (cliPath == null) { final GitHubReleaseDownloader bundle = new GitHubReleaseDownloader( - Platform.current.cliTarBallName, - cookies, - "fabric8-analytics/cli-tools", - true); + Platform.current.cliTarBallName, + cookies, + "fabric8-analytics/cli-tools", + true); // Download the CLI tarball - bundle.download(indicator); + bundle.download(); // Extract tar file to get CLI Binary new SaUtils().unTarBundle(Platform.current.cliTarBallName, Cli.current.cliBinaryName); diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index fc941b1..03cff8f 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -123,13 +123,24 @@ com.redhat.devtools.intellij.telemetry + + + + + + + + + + + + - - + @@ -148,9 +159,12 @@ - - - org.wso2.lsp4intellij.IntellijLanguageClient - - + + + + + +