From 968ac88b23f1c928be5ff3f47d88c5de7abead01 Mon Sep 17 00:00:00 2001 From: Carolin Brandt Date: Tue, 10 Oct 2023 15:26:29 +0200 Subject: [PATCH] version compiling on IntelliJ 2023 (NPE when trying to inspect coverage result in the plugin though, might be because wrong DSpot version included?) --- build.gradle.kts | 2 +- gradle.properties | 18 +- gradle/wrapper/gradle-wrapper.jar | Bin 58695 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 263 ++++++++++++++--------- gradlew.bat | 37 ++-- 6 files changed, 187 insertions(+), 135 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index c01b29f..b59e5f6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { // Kotlin support id("org.jetbrains.kotlin.jvm") version "1.5.30" // Gradle IntelliJ Plugin - id("org.jetbrains.intellij") version "1.1.6" + id("org.jetbrains.intellij") version "1.10.0" // Gradle Changelog Plugin id("org.jetbrains.changelog") version "1.3.0" // Gradle Qodana Plugin diff --git a/gradle.properties b/gradle.properties index d6c2f52..eb6e814 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,21 +5,25 @@ pluginName=test-cube pluginVersion=1.0.8 # See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html # for insight into build numbers and IntelliJ Platform versions. -pluginSinceBuild=203 -pluginUntilBuild=221.* +pluginSinceBuild=223 +pluginUntilBuild=232.* # Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl # See https://jb.gg/intellij-platform-builds-list for available build versions. -pluginVerifierIdeVersions=2021.1, 2021.2, 2021.3 +pluginVerifierIdeVersions=2023.1, 2023.2 platformType=IC -platformVersion=2021.3.1 +platformVersion=2023.2 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=com.intellij.java # Java language level used to compile sources and to generate the files for - Java 11 is required since 2020.3 -javaVersion=11 -gradleVersion=7.2 +javaVersion=17 +gradleVersion=8.4 # 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 \ No newline at end of file +kotlin.stdlib.default.dependency=false +# Enable Gradle Configuration Cache -> https://docs.gradle.org/current/userguide/configuration_cache.html +#org.gradle.configuration-cache=true +# Enable Gradle Build Cache -> https://docs.gradle.org/current/userguide/build_cache.html +#org.gradle.caching=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f3d88b1c2faf2fc91d853cd5d4242b5547257070..249e5832f090a2944b7473328c07c9755baa3196 100644 GIT binary patch delta 21912 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

i_@% delta 19725 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f371643..8049c68 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-7.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 2fe81a7..a69d9cb 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,78 +17,113 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # 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 +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${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='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # 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 - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | 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" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -97,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + 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 @@ -105,79 +140,101 @@ 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 +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac 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 +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. # For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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 +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + # 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\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=`expr $i + 1` + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg 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 -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 24467a1..53a6b23 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,10 +25,13 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @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="-Xmx64m" "-Xms64m" @@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -51,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -61,38 +64,26 @@ 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 - -: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=%* - :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% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 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 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal