From 95ac8085382255e876e3a7d8d670c796e1efc32b Mon Sep 17 00:00:00 2001 From: Simon Stratmann Date: Fri, 16 Sep 2022 08:08:52 +0200 Subject: [PATCH 1/2] Update to build.gradle.kts, fix EDT exceptions --- build.gradle | 19 -- build.gradle.kts | 76 ++++++++ build.gradle.old | 30 ++++ gradle.properties | 27 +++ gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 164 ------------------ gradlew.bat | 90 ---------- settings.gradle | 8 + .../multirun/MultirunRunnerState.java | 23 +-- src/main/resources/META-INF/plugin.xml | 8 +- 10 files changed, 161 insertions(+), 287 deletions(-) delete mode 100644 build.gradle create mode 100644 build.gradle.kts create mode 100644 build.gradle.old create mode 100644 gradle.properties delete mode 100755 gradlew delete mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 4756aed..0000000 --- a/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -plugins { - id "org.jetbrains.intellij" version "0.6.3" -} - -intellij { - pluginName = 'multirun' - updateSinceUntilBuild = false -} - -// Load the plugin repo api key from local.properties file -Properties properties = new Properties() -def propertiesFile = project.rootProject.file('local.properties') -if (propertiesFile.exists()) { - properties.load(propertiesFile.newDataInputStream()) -} - -publishPlugin { - token properties.getProperty('hub.token') -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..a4d857e --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,76 @@ +fun properties(key: String) = project.findProperty(key).toString() + +plugins { + id("org.jetbrains.intellij") version "1.9.0" +} + +group = properties("pluginGroup") +version = properties("pluginVersion") + +repositories { + mavenLocal() + mavenCentral() + maven( + url = "https://oss.sonatype.org/content/repositories/snapshots/" + ) + maven( + url = "https://packages.jetbrains.team/maven/p/intellij-plugin-verifier/intellij-plugin-structure" + ) + maven( + url = "https://www.jetbrains.com/intellij-repository/releases" + ) +} + + +intellij { + pluginName.set(properties("pluginName")) + version.set(properties("platformVersion")) + type.set(properties("platformType")) + downloadSources.set(properties("platformDownloadSources").toBoolean()) + updateSinceUntilBuild.set(true) +} + + +tasks { + // Set the JVM compatibility versions + properties("javaVersion").let { + withType { + sourceCompatibility = it + targetCompatibility = it + } + } + + patchPluginXml { + version.set(properties("pluginVersion")) + sinceBuild.set(properties("pluginSinceBuild")) + untilBuild.set(properties("pluginUntilBuild")) + + } + + + wrapper { + gradleVersion = properties("gradleVersion") + } + + runIde { + jvmArgs( + "-Xmx6G" + ) + } + + + publishPlugin { +// dependsOn("patchChangelog") + token.set(System.getenv("PUBLISH_TOKEN")) + // pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3 + // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more: + // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel + channels.set(listOf(properties("pluginVersion").split('-').getOrElse(1) { "default" }.split('.').first())) + } + + buildSearchableOptions { + // Allows building the plugin while a sandbox is running + enabled = false + } + +} diff --git a/build.gradle.old b/build.gradle.old new file mode 100644 index 0000000..3dedc86 --- /dev/null +++ b/build.gradle.old @@ -0,0 +1,30 @@ +plugins { + id "org.jetbrains.intellij" version "1.5.2" +} + +intellij { + pluginName = 'multirun' + updateSinceUntilBuild = false +} + +repositories { + mavenCentral() + maven { + url "https://packages.jetbrains.team/maven/p/intellij-plugin-verifier/intellij-plugin-structure" + } + maven { + url "https://www.jetbrains.com/intellij-repository/releases" + } +} + + +// Load the plugin repo api key from local.properties file +final Properties properties = new Properties() +final def propertiesFile = project.rootProject.file('local.properties') +if (propertiesFile.exists()) { + properties.load(propertiesFile.newDataInputStream()) +} + +publishPlugin { + token properties.getProperty('hub.token') +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..38975ce --- /dev/null +++ b/gradle.properties @@ -0,0 +1,27 @@ +# IntelliJ Platform Artifacts Repositories +# -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html + +pluginGroup=com.khmelyuk.multirun +pluginName=Multirun +pluginVersion=1.13.1 + +pluginSinceBuild=213.3714 +pluginUntilBuild= + +platformType=IU +platformVersion=221.5080.210 +platformDownloadSources=true + +# Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html +# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22 +platformPlugins= + +# Java language level used to compile sources and to generate the files for - Java 11 is required since 2020.3 +javaVersion=11 + +gradleVersion=6.9 + +# Opt-out flag for bundling Kotlin standard library. +# See https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library for details. +# suppress inspection "UnusedProperty" +kotlin.stdlib.default.dependency=false diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a27d71c..3ab0b72 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Fri Jun 17 09:26:36 NOVT 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://cache-redirector.jetbrains.com/services.gradle.org/distributions/gradle-4.10-all.zip diff --git a/gradlew b/gradlew deleted file mode 100755 index 27309d9..0000000 --- a/gradlew +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index 832fdb6..0000000 --- a/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..aef80ff --- /dev/null +++ b/settings.gradle @@ -0,0 +1,8 @@ +pluginManagement { + repositories { + maven { + url 'https://oss.sonatype.org/content/repositories/snapshots/' + } + gradlePluginPortal() + } +} diff --git a/src/main/java/com/khmelyuk/multirun/MultirunRunnerState.java b/src/main/java/com/khmelyuk/multirun/MultirunRunnerState.java index 8df6a0c..34d052d 100644 --- a/src/main/java/com/khmelyuk/multirun/MultirunRunnerState.java +++ b/src/main/java/com/khmelyuk/multirun/MultirunRunnerState.java @@ -1,11 +1,5 @@ package com.khmelyuk.multirun; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - import com.intellij.execution.ExecutionException; import com.intellij.execution.ExecutionResult; import com.intellij.execution.ExecutionTarget; @@ -29,6 +23,7 @@ import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.actionSystem.impl.ActionManagerImpl; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.progress.Task; @@ -37,6 +32,11 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.LayeredIcon; import com.intellij.ui.content.Content; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; /** * @author Ruslan Khmelyuk @@ -269,11 +269,14 @@ public void run(@NotNull ProgressIndicator progressIndicator) { } } ); - - runner.execute(executionEnvironment); + ApplicationManager.getApplication().invokeLater(() -> { + try { + runner.execute(executionEnvironment); + } catch (ExecutionException e) { + ExecutionUtil.handleExecutionError(project, executor.getToolWindowId(), configuration.getConfiguration(), e); + } + }, ModalityState.defaultModalityState()); started = true; - } catch (ExecutionException e) { - ExecutionUtil.handleExecutionError(project, executor.getToolWindowId(), configuration.getConfiguration(), e); } finally { // start the next one if (!startOneByOne) { diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index a2cddd1..7e58282 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -2,7 +2,7 @@ com.khmelyuk.multirun Multirun 1.13 - Ruslan Khmelyuk + Ruslan Khmelyuk Ready to use -

Multirun + Before Launch Tasks gives even more functionality: read more at http://goo.gl/KwHvx

+

Multirun + Before Launch Tasks gives even more functionality: read more at https://goo.gl/KwHvx

]]>
1.13.1:

+
    +
  • Fix EDT thread exceptions.
  • +

1.13:

  • Add support for 2021.2 version of IntelliJ based IDEs.
  • From 5dee46567f0b18da4f6edd9ea5052a8f4b74d1aa Mon Sep 17 00:00:00 2001 From: seidnerj Date: Wed, 6 Dec 2023 23:03:56 +0200 Subject: [PATCH 2/2] Updated dependencies and grade build file so build succeeds --- .gitignore | 1 + build.gradle.kts | 8 ++++--- build.gradle.old | 30 ------------------------ gradle.properties | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- src/main/resources/META-INF/plugin.xml | 2 +- 6 files changed, 10 insertions(+), 37 deletions(-) delete mode 100644 build.gradle.old diff --git a/.gitignore b/.gitignore index c20935c..35e0c35 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ build out !gradle/wrapper/gradle-wrapper.jar .idea/ +.DS_Store \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index a4d857e..1b16a20 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ fun properties(key: String) = project.findProperty(key).toString() plugins { - id("org.jetbrains.intellij") version "1.9.0" + id("org.jetbrains.intellij") version "1.16.1" } group = properties("pluginGroup") @@ -60,12 +60,14 @@ tasks { publishPlugin { -// dependsOn("patchChangelog") + //dependsOn("patchChangelog") token.set(System.getenv("PUBLISH_TOKEN")) + // pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3 // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more: // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel - channels.set(listOf(properties("pluginVersion").split('-').getOrElse(1) { "default" }.split('.').first())) + + channels.set(listOf(properties("pluginVersion"))) } buildSearchableOptions { diff --git a/build.gradle.old b/build.gradle.old deleted file mode 100644 index 3dedc86..0000000 --- a/build.gradle.old +++ /dev/null @@ -1,30 +0,0 @@ -plugins { - id "org.jetbrains.intellij" version "1.5.2" -} - -intellij { - pluginName = 'multirun' - updateSinceUntilBuild = false -} - -repositories { - mavenCentral() - maven { - url "https://packages.jetbrains.team/maven/p/intellij-plugin-verifier/intellij-plugin-structure" - } - maven { - url "https://www.jetbrains.com/intellij-repository/releases" - } -} - - -// Load the plugin repo api key from local.properties file -final Properties properties = new Properties() -final def propertiesFile = project.rootProject.file('local.properties') -if (propertiesFile.exists()) { - properties.load(propertiesFile.newDataInputStream()) -} - -publishPlugin { - token properties.getProperty('hub.token') -} diff --git a/gradle.properties b/gradle.properties index 38975ce..23d6d42 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ pluginGroup=com.khmelyuk.multirun pluginName=Multirun pluginVersion=1.13.1 -pluginSinceBuild=213.3714 +pluginSinceBuild=221.5080.210 pluginUntilBuild= platformType=IU @@ -19,7 +19,7 @@ platformPlugins= # Java language level used to compile sources and to generate the files for - Java 11 is required since 2020.3 javaVersion=11 -gradleVersion=6.9 +gradleVersion=8.5 # Opt-out flag for bundling Kotlin standard library. # See https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library for details. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3ab0b72..a595206 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 7e58282..a5006cf 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -1,7 +1,7 @@ com.khmelyuk.multirun Multirun - 1.13 + 1.13.1 Ruslan Khmelyuk