From 8cc87e5c37c47d8cf0e2ff8f62fd08e760718013 Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 4 Oct 2022 23:04:43 +0800 Subject: [PATCH 01/21] Add .gitattributes --- .gitattributes | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..27fc7c2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +* text=auto eol=lf + +*.bat text eol=crlf +*.jar binary \ No newline at end of file From fe8f8d2a704634c91bea5d4e4ca5fecb2855a84e Mon Sep 17 00:00:00 2001 From: Goooler Date: Fri, 24 Feb 2023 14:01:16 +0800 Subject: [PATCH 02/21] Update plugin-publish-plugin 1.1.0 --- build.gradle | 14 ++++++++------ .../com.github.blindpirate.osgi.properties | 1 - 2 files changed, 8 insertions(+), 7 deletions(-) delete mode 100644 src/main/resources/META-INF/gradle-plugins/com.github.blindpirate.osgi.properties diff --git a/build.gradle b/build.gradle index 73afb8a..823fff4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { id 'java-library' id 'groovy' - id "com.gradle.plugin-publish" version "0.12.0" + id "com.gradle.plugin-publish" version "1.1.0" } repositories { @@ -24,15 +24,17 @@ dependencies { testImplementation('org.junit.vintage:junit-vintage-engine') } -pluginBundle { +gradlePlugin { + website = 'https://github.com/blindpirate/gradle-legacy-osgi-plugin' + vcsUrl = 'https://github.com/blindpirate/gradle-legacy-osgi-plugin' + plugins { osgiPlugin { - website = 'https://github.com/blindpirate/gradle-legacy-osgi-plugin' - vcsUrl = 'https://github.com/blindpirate/gradle-legacy-osgi-plugin' - description = 'A legacy osgi plugin in Gradle 5' - tags = ['legacy', 'osgi'] id = 'com.github.blindpirate.osgi' + implementationClass = "com.github.blindpirate.osgi.plugins.osgi.OsgiPlugin" displayName = 'A legacy osgi plugin in Gradle 5' + description = 'A legacy osgi plugin in Gradle 5' + tags.set(['legacy', 'osgi']) } } } diff --git a/src/main/resources/META-INF/gradle-plugins/com.github.blindpirate.osgi.properties b/src/main/resources/META-INF/gradle-plugins/com.github.blindpirate.osgi.properties deleted file mode 100644 index 652ae74..0000000 --- a/src/main/resources/META-INF/gradle-plugins/com.github.blindpirate.osgi.properties +++ /dev/null @@ -1 +0,0 @@ -implementation-class=com.github.blindpirate.osgi.plugins.osgi.OsgiPlugin From 59649c632c50e868b777875f99f32c8be89da57e Mon Sep 17 00:00:00 2001 From: Goooler Date: Sat, 25 Feb 2023 15:37:23 +0800 Subject: [PATCH 03/21] Update AQute Bndlib 6.4.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 823fff4..5981532 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ targetCompatibility = '1.8' dependencies { api gradleApi() api localGroovy() - api 'biz.aQute.bnd:biz.aQute.bndlib:5.2.0' + api 'biz.aQute.bnd:biz.aQute.bndlib:6.4.0' testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' testImplementation 'net.bytebuddy:byte-buddy:1.10.6' From 2ae13137b7a49d74193041a1cfa414644a7b0380 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sat, 25 Feb 2023 15:37:42 +0800 Subject: [PATCH 04/21] Gradle 8.0.1 --- gradle/wrapper/gradle-wrapper.jar | Bin 58695 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 269 ++++++++++++++--------- gradlew.bat | 195 ++++++++-------- 4 files changed, 259 insertions(+), 208 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f3d88b1c2faf2fc91d853cd5d4242b5547257070..ccebba7710deaf9f98673a68957ea02138b60d0a 100644 GIT binary patch delta 41960 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 delta 39019 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 \(.*\)$'` - 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_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # 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,105 @@ 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*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + 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 9109989..93e3f59 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,103 +1,92 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@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 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" - -@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 - -: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% - -: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 +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@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=. +@rem This is normally unused +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" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +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 execute + +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 + +: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 %* + +:end +@rem End local scope for the variables with windows NT shell +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! +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 + +:omega From f9c218662b5a4794e6400fca90d728d514c6ea4c Mon Sep 17 00:00:00 2001 From: Goooler Date: Fri, 24 Feb 2023 14:12:15 +0800 Subject: [PATCH 05/21] Migrate BasePluginConvention & JavaPluginConvention --- .../blindpirate/osgi/internal/plugins/osgi/OsgiHelper.java | 4 ++-- .../com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java | 4 ++-- .../blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/github/blindpirate/osgi/internal/plugins/osgi/OsgiHelper.java b/src/main/java/com/github/blindpirate/osgi/internal/plugins/osgi/OsgiHelper.java index be3e1d5..d955e53 100644 --- a/src/main/java/com/github/blindpirate/osgi/internal/plugins/osgi/OsgiHelper.java +++ b/src/main/java/com/github/blindpirate/osgi/internal/plugins/osgi/OsgiHelper.java @@ -17,7 +17,7 @@ import org.gradle.api.GradleException; import org.gradle.api.Project; -import org.gradle.api.plugins.BasePluginConvention; +import org.gradle.api.plugins.BasePluginExtension; import java.util.StringTokenizer; import java.util.regex.Matcher; @@ -59,7 +59,7 @@ public class OsgiHelper { */ public String getBundleSymbolicName(Project project) { String group = project.getGroup().toString(); - String archiveBaseName = project.getConvention().getPlugin(BasePluginConvention.class).getArchivesBaseName(); + String archiveBaseName = project.getExtensions().getByType(BasePluginExtension.class).getArchivesName().get(); if (archiveBaseName.startsWith(group)) { return archiveBaseName; } diff --git a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java index 541b507..cedd318 100644 --- a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java +++ b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java @@ -22,7 +22,7 @@ import org.gradle.api.internal.project.ProjectInternal; import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPlugin; -import org.gradle.api.plugins.JavaPluginConvention; +import org.gradle.api.plugins.JavaPluginExtension; import org.gradle.api.tasks.Sync; import org.gradle.api.tasks.bundling.Jar; @@ -45,7 +45,7 @@ public void execute(JavaPlugin javaPlugin) { // When creating the OSGi manifest, we must have a single view of all of the classes included in the jar. Sync prepareOsgiClasses = project.getTasks().create("osgiClasses", Sync.class); - FileCollection classes = project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().getByName("main").getOutput().getClassesDirs(); + FileCollection classes = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets().getByName("main").getOutput().getClassesDirs(); File singleClassesDirectory = new File(project.getBuildDir(), "osgi-classes"); prepareOsgiClasses.setDescription("Prepares a single classes directory required for OSGi analysis."); prepareOsgiClasses.from(classes); diff --git a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java index e659cb6..e50077b 100644 --- a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java +++ b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java @@ -22,7 +22,7 @@ import org.gradle.api.internal.ConventionMapping; import org.gradle.api.internal.IConventionAware; import org.gradle.api.internal.project.ProjectInternal; -import org.gradle.api.plugins.BasePluginConvention; +import org.gradle.api.plugins.BasePluginExtension; import org.gradle.internal.Actions; import org.gradle.internal.reflect.Instantiator; @@ -108,7 +108,7 @@ public Object call() throws Exception { mapping.map("name", new Callable() { @Override public Object call() throws Exception { - return project.getConvention().getPlugin(BasePluginConvention.class).getArchivesBaseName(); + return project.getExtensions().getByType(BasePluginExtension.class).getArchivesName().get(); } }); mapping.map("symbolicName", new Callable() { From 1f49c152cb151f43cf7e714bcc4cfeb255bc6b4c Mon Sep 17 00:00:00 2001 From: Goooler Date: Fri, 24 Feb 2023 14:28:47 +0800 Subject: [PATCH 06/21] Migrate OsgiPluginConvention to OsgiExtension --- ...iPluginConvention.java => OsgiExtension.java} | 8 +++++--- .../osgi/plugins/osgi/OsgiPlugin.java | 5 ++--- ...ntionTest.groovy => OsgiExtensionTest.groovy} | 16 ++++++++-------- .../osgi/plugins/osgi/OsgiPluginTest.groovy | 2 +- 4 files changed, 16 insertions(+), 15 deletions(-) rename src/main/java/com/github/blindpirate/osgi/plugins/osgi/{OsgiPluginConvention.java => OsgiExtension.java} (96%) rename src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/{OsgiPluginConventionTest.groovy => OsgiExtensionTest.groovy} (83%) diff --git a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiExtension.java similarity index 96% rename from src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java rename to src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiExtension.java index e50077b..f4d13a4 100644 --- a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConvention.java +++ b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiExtension.java @@ -26,6 +26,7 @@ import org.gradle.internal.Actions; import org.gradle.internal.reflect.Instantiator; +import javax.inject.Inject; import java.util.concurrent.Callable; import static org.gradle.util.ConfigureUtil.configure; @@ -33,15 +34,16 @@ /** * Is mixed into the project when applying the {@link OsgiPlugin}. */ -public class OsgiPluginConvention { +public class OsgiExtension { private final ProjectInternal project; /** - * Creates an {@link OsgiPluginConvention} instance. + * Creates an {@link OsgiExtension} instance. * * @param project the project instance */ - public OsgiPluginConvention(ProjectInternal project) { + @Inject + public OsgiExtension(ProjectInternal project) { this.project = project; } diff --git a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java index cedd318..3671c5b 100644 --- a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java +++ b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiPlugin.java @@ -36,8 +36,7 @@ public class OsgiPlugin implements Plugin { public void apply(final Project project) { project.getPluginManager().apply(JavaBasePlugin.class); - final OsgiPluginConvention osgiConvention = new OsgiPluginConvention((ProjectInternal) project); - project.getConvention().getPlugins().put("osgi", osgiConvention); + final OsgiExtension extension = project.getExtensions().create("osgi", OsgiExtension.class, project); project.getPlugins().withType(JavaPlugin.class, new Action() { @Override @@ -53,7 +52,7 @@ public void execute(JavaPlugin javaPlugin) { Jar jarTask = (Jar) project.getTasks().getByName("jar"); jarTask.dependsOn(prepareOsgiClasses); - OsgiManifest osgiManifest = osgiConvention.osgiManifest(); + OsgiManifest osgiManifest = extension.osgiManifest(); osgiManifest.setClassesDir(singleClassesDirectory); osgiManifest.setClasspath(project.getConfigurations().getByName("runtimeClasspath")); diff --git a/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConventionTest.groovy b/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiExtensionTest.groovy similarity index 83% rename from src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConventionTest.groovy rename to src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiExtensionTest.groovy index 713c00c..8c1b0bd 100644 --- a/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginConventionTest.groovy +++ b/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiExtensionTest.groovy @@ -21,24 +21,24 @@ import org.gradle.api.Action import org.gradle.api.plugins.JavaBasePlugin import spock.lang.Issue -class OsgiPluginConventionTest extends AbstractProjectBuilderSpec { +class OsgiExtensionTest extends AbstractProjectBuilderSpec { - OsgiPluginConvention osgiPluginConvention + OsgiExtension extension def setup() { - osgiPluginConvention = new OsgiPluginConvention(project) + extension = new OsgiExtension(project) project.pluginManager.apply(JavaBasePlugin) } def osgiManifestWithNoClosure() { - OsgiManifest osgiManifest = osgiPluginConvention.osgiManifest() + OsgiManifest osgiManifest = extension.osgiManifest() expect: matchesExpectedConfig(osgiManifest) } def osgiManifestWithClosure() { - OsgiManifest osgiManifest = osgiPluginConvention.osgiManifest { + OsgiManifest osgiManifest = extension.osgiManifest { description = 'myDescription' } @@ -48,7 +48,7 @@ class OsgiPluginConventionTest extends AbstractProjectBuilderSpec { } def osgiManifestWithAction() { - OsgiManifest osgiManifest = osgiPluginConvention.osgiManifest({ OsgiManifest manifest -> + OsgiManifest osgiManifest = extension.osgiManifest({ OsgiManifest manifest -> manifest.description = 'myDescription' } as Action) @@ -64,7 +64,7 @@ class OsgiPluginConventionTest extends AbstractProjectBuilderSpec { "2.1" } } - def manifest = osgiPluginConvention.osgiManifest() + def manifest = extension.osgiManifest() expect: manifest.version == "2.1" @@ -72,7 +72,7 @@ class OsgiPluginConventionTest extends AbstractProjectBuilderSpec { @Issue("GRADLE-1670") def "computes its defaults lazily"() { - def manifest = osgiPluginConvention.osgiManifest() + def manifest = extension.osgiManifest() def i = 0 project.version = "${-> ++i}" project.group = "my.group" diff --git a/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginTest.groovy b/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginTest.groovy index 579523c..948b966 100644 --- a/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginTest.groovy +++ b/src/test/groovy/com/github/blindpirate/osgi/plugins/osgi/OsgiPluginTest.groovy @@ -25,7 +25,7 @@ class OsgiPluginTest extends AbstractProjectBuilderSpec { expect: project.plugins.hasPlugin('java-base') - project.convention.plugins.osgi instanceof OsgiPluginConvention + project.extensions.getByName('osgi') instanceof OsgiExtension } void addsAnOsgiManifestToTheDefaultJar() { From 54cdda2c339625eeca74cfa107c6e7af247a9181 Mon Sep 17 00:00:00 2001 From: Goooler Date: Fri, 24 Feb 2023 14:31:29 +0800 Subject: [PATCH 07/21] Minor tweaks --- build.gradle | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 5981532..e867c2a 100644 --- a/build.gradle +++ b/build.gradle @@ -10,17 +10,20 @@ repositories { group 'com.github.blindpirate' version '0.0.6' -sourceCompatibility = '1.8' -targetCompatibility = '1.8' + +java { + sourceCompatibility = '1.8' + targetCompatibility = '1.8' +} dependencies { api gradleApi() api localGroovy() api 'biz.aQute.bnd:biz.aQute.bndlib:6.4.0' - testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' - testImplementation 'net.bytebuddy:byte-buddy:1.10.6' - testImplementation(platform('org.junit:junit-bom:5.8.0')) + testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0' + testImplementation 'net.bytebuddy:byte-buddy:1.14.0' + testImplementation(platform('org.junit:junit-bom:5.9.2')) testImplementation('org.junit.vintage:junit-vintage-engine') } From ab8e62cbe245bc319e84e96e3a090ba64f495132 Mon Sep 17 00:00:00 2001 From: Goooler Date: Fri, 24 Feb 2023 13:49:07 +0800 Subject: [PATCH 08/21] Add GHA config --- .github/workflows/main.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..8c666b2 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,27 @@ +name: Main + +on: + pull_request: + push: + branches: + - master + workflow_dispatch: + +jobs: + build: + strategy: + matrix: + os: [ ubuntu-latest ] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 + - uses: gradle/wrapper-validation-action@v1 + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Execute Gradle build + run: ./gradlew build From 690ece731d0606bf4a8402028284f1a91fbb90b9 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sat, 25 Feb 2023 23:02:16 +0800 Subject: [PATCH 09/21] Enable Gradle cache --- gradle.properties | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 gradle.properties diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..13960d6 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8 +org.gradle.parallel=true +org.gradle.caching=true \ No newline at end of file From 0423e68bc31f43d94b02f0e82008bf67a6189c7f Mon Sep 17 00:00:00 2001 From: Goooler Date: Sat, 25 Feb 2023 23:03:08 +0800 Subject: [PATCH 10/21] Enable stable config cache --- build.gradle | 4 ++++ gradle.properties | 3 ++- settings.gradle | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 settings.gradle diff --git a/build.gradle b/build.gradle index e867c2a..c57fad3 100644 --- a/build.gradle +++ b/build.gradle @@ -42,6 +42,10 @@ gradlePlugin { } } +tasks.named('publishPlugins') { + notCompatibleWithConfigurationCache("https://github.com/gradle/gradle/issues/21283") +} + publishPlugins.dependsOn 'check' test { diff --git a/gradle.properties b/gradle.properties index 13960d6..b1192dd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,4 @@ org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8 org.gradle.parallel=true -org.gradle.caching=true \ No newline at end of file +org.gradle.caching=true +org.gradle.unsafe.configuration-cache=true diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..24491ae --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +enableFeaturePreview("STABLE_CONFIGURATION_CACHE") From 3040fd354ba5db95f6b3b38eb810a9c73418c8a4 Mon Sep 17 00:00:00 2001 From: Goooler Date: Wed, 1 Mar 2023 11:54:44 +0800 Subject: [PATCH 11/21] Update README with new badge --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9151de..5282170 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,6 @@ If you're still using the deprecated `osgi` Gradle plugin in Gradle 6, you can u ## How to use -Just replace the original `apply plugin: 'osgi'` with `apply plugin: 'com.github.blindpirate.osgi'`. +[![Download](https://img.shields.io/gradle-plugin-portal/v/com.github.blindpirate.osgi)](https://plugins.gradle.org/plugin/com.github.blindpirate.osgi) -See [it on Gradle plugin portal](https://plugins.gradle.org/plugin/com.github.blindpirate.osgi). +Just replace the original `apply plugin: 'osgi'` with `apply plugin: 'com.github.blindpirate.osgi'`. From 26011a4664f731e0475cb6a05f3fced49e1c54ad Mon Sep 17 00:00:00 2001 From: Goooler Date: Thu, 9 Mar 2023 11:44:34 +0800 Subject: [PATCH 12/21] Gradle 8.0.2 --- 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 fc10b60..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-8.0.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 81346dc83e96b454bd44874fe69f97fb751a2db1 Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 14 Mar 2023 22:07:49 +0800 Subject: [PATCH 13/21] Replace deprecated ConfigureUtil https://docs.gradle.org/8.0.1/javadoc/org/gradle/util/ConfigureUtil.html --- .../github/blindpirate/osgi/plugins/osgi/OsgiExtension.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiExtension.java b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiExtension.java index f4d13a4..9ee6bd6 100644 --- a/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiExtension.java +++ b/src/main/java/com/github/blindpirate/osgi/plugins/osgi/OsgiExtension.java @@ -29,8 +29,6 @@ import javax.inject.Inject; import java.util.concurrent.Callable; -import static org.gradle.util.ConfigureUtil.configure; - /** * Is mixed into the project when applying the {@link OsgiPlugin}. */ @@ -80,7 +78,9 @@ public OsgiManifest osgiManifest() { * @return the created OsgiManifest instance */ public OsgiManifest osgiManifest(Closure closure) { - return configure(closure, createDefaultOsgiManifest()); + OsgiManifest manifest = createDefaultOsgiManifest(); + project.configure(manifest, closure); + return manifest; } /** From 4e5c020208b7591b23c1efd196b12a8871d0d321 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 13:45:16 +0000 Subject: [PATCH 14/21] Add renovate.json --- renovate.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..39a2b6e --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ] +} From 7df9c0fb0be20e05f4a9a4bf63e3a52a17ec7f2d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 12:33:58 +0800 Subject: [PATCH 15/21] Update dependency gradle to v8.1 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/wrapper/gradle-wrapper.jar | Bin 61608 -> 62076 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 7 ++++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba7710deaf9f98673a68957ea02138b60d0a..c1962a79e29d3e0ab67b14947c167a862655af9b 100644 GIT binary patch delta 8979 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 F{TFmrHLU;u delta 8469 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 Date: Thu, 4 May 2023 16:36:25 +0800 Subject: [PATCH 16/21] Update dependency gradle to v8.1.1 Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- 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 0c85a1f..37aef8d 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-8.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 343a59fb9c3c747fe205f7844fdd043f913e4b76 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 06:45:47 +0000 Subject: [PATCH 17/21] Update plugin com.gradle.plugin-publish to v1.2.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c57fad3..712e8d4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { id 'java-library' id 'groovy' - id "com.gradle.plugin-publish" version "1.1.0" + id "com.gradle.plugin-publish" version "1.2.0" } repositories { From 5a7acd1fbb0653b80ee6b1d547af408eba17d921 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 06:45:43 +0000 Subject: [PATCH 18/21] Update dependency org.junit:junit-bom to v5.9.3 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 712e8d4..15c8064 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ dependencies { testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0' testImplementation 'net.bytebuddy:byte-buddy:1.14.0' - testImplementation(platform('org.junit:junit-bom:5.9.2')) + testImplementation(platform('org.junit:junit-bom:5.9.3')) testImplementation('org.junit.vintage:junit-vintage-engine') } From 310b5d3400740d2269ed34db39f331c036a2e788 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 06:45:40 +0000 Subject: [PATCH 19/21] Update dependency net.bytebuddy:byte-buddy to v1.14.5 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 15c8064..20cdcef 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ dependencies { api 'biz.aQute.bnd:biz.aQute.bndlib:6.4.0' testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0' - testImplementation 'net.bytebuddy:byte-buddy:1.14.0' + testImplementation 'net.bytebuddy:byte-buddy:1.14.5' testImplementation(platform('org.junit:junit-bom:5.9.3')) testImplementation('org.junit.vintage:junit-vintage-engine') } From 1703c5317da942f3c35a21cdda29b96e01644083 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 06:45:35 +0000 Subject: [PATCH 20/21] Update dependency biz.aQute.bnd:biz.aQute.bndlib to v6.4.1 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 20cdcef..31f0311 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ java { dependencies { api gradleApi() api localGroovy() - api 'biz.aQute.bnd:biz.aQute.bndlib:6.4.0' + api 'biz.aQute.bnd:biz.aQute.bndlib:6.4.1' testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0' testImplementation 'net.bytebuddy:byte-buddy:1.14.5' From 60dfd00066c2b4cdc267c7c5c5b74dc2d5254534 Mon Sep 17 00:00:00 2001 From: Goooler Date: Tue, 13 Jun 2023 14:54:42 +0800 Subject: [PATCH 21/21] Use org.gradle.configuration-cache flag https://docs.gradle.org/8.1/userguide/upgrading_version_8.html#configuration_caching_options_renamed --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b1192dd..139007c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.caching=true -org.gradle.unsafe.configuration-cache=true +org.gradle.configuration-cache=true