diff --git a/.github/workflows/gradle-plugin-tests.yaml b/.github/workflows/gradle-plugin-tests.yaml
index 293cc36daa9b..3420bafdeb79 100644
--- a/.github/workflows/gradle-plugin-tests.yaml
+++ b/.github/workflows/gradle-plugin-tests.yaml
@@ -14,10 +14,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- - name: Set up JDK 11
+ - name: Set up JDK 21
uses: actions/setup-java@v5
with:
- java-version: 11
+ java-version: 21
distribution: 'temurin'
cache: gradle
- name: Cache maven dependencies
diff --git a/modules/openapi-generator-gradle-plugin/build.gradle b/modules/openapi-generator-gradle-plugin/build.gradle
index 5bfe8171199d..c4233aa6af3e 100644
--- a/modules/openapi-generator-gradle-plugin/build.gradle
+++ b/modules/openapi-generator-gradle-plugin/build.gradle
@@ -3,11 +3,10 @@ import io.github.gradlenexus.publishplugin.ReleaseNexusStagingRepository
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
- id("com.gradle.plugin-publish") version "1.1.0"
- id("io.github.gradle-nexus.publish-plugin") version "1.1.0"
+ id("com.gradle.plugin-publish") version "2.0.0"
+ id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
id("java-gradle-plugin")
id("maven-publish")
- id("org.gradle.kotlin.kotlin-dsl") version "2.4.1"
id("org.jetbrains.kotlin.jvm") version "1.9.0"
id("signing")
}
diff --git a/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.jar b/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.jar
index 943f0cbfa754..1b33c55baabb 100644
Binary files a/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.jar and b/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.properties b/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.properties
index c7d437bbb476..aaaabb3cb9fe 100644
--- a/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.properties
+++ b/modules/openapi-generator-gradle-plugin/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/modules/openapi-generator-gradle-plugin/gradlew b/modules/openapi-generator-gradle-plugin/gradlew
index 65dcd68d65c8..23d15a936707 100755
--- a/modules/openapi-generator-gradle-plugin/gradlew
+++ b/modules/openapi-generator-gradle-plugin/gradlew
@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+# SPDX-License-Identifier: Apache-2.0
+#
##############################################################################
#
@@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -83,10 +85,8 @@ done
# 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"'
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -114,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -133,10 +133,13 @@ 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.
+ if ! command -v java >/dev/null 2>&1
+ then
+ 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
fi
# Increase the maximum file descriptors if we can.
@@ -144,7 +147,7 @@ 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
+ # shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +155,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -197,16 +200,20 @@ if "$cygwin" || "$msys" ; then
done
fi
-# 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.
+
+# 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"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/modules/openapi-generator-gradle-plugin/gradlew.bat b/modules/openapi-generator-gradle-plugin/gradlew.bat
index 93e3f59f135d..db3a6ac207e5 100644
--- a/modules/openapi-generator-gradle-plugin/gradlew.bat
+++ b/modules/openapi-generator-gradle-plugin/gradlew.bat
@@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@@ -43,11 +45,11 @@ 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.
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -57,22 +59,22 @@ 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.
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+set CLASSPATH=
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/modules/openapi-generator-gradle-plugin/pom.xml b/modules/openapi-generator-gradle-plugin/pom.xml
index 506e07706190..0c2cbb67c589 100644
--- a/modules/openapi-generator-gradle-plugin/pom.xml
+++ b/modules/openapi-generator-gradle-plugin/pom.xml
@@ -17,7 +17,7 @@
true
- 7.6.4
+ 8.14.4
7.4.2
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.jar b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.jar
index cc4fdc293d0e..1b33c55baabb 100644
Binary files a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.jar and b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.properties b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.properties
index 3994438e2292..aaaabb3cb9fe 100644
--- a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.properties
+++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew
index cc8078650258..23d15a936707 100755
--- a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew
+++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew
@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+# SPDX-License-Identifier: Apache-2.0
+#
##############################################################################
#
@@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -83,10 +85,8 @@ done
# 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='-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"'
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -114,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -133,10 +133,13 @@ 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.
+ if ! command -v java >/dev/null 2>&1
+ then
+ 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
fi
# Increase the maximum file descriptors if we can.
@@ -144,7 +147,7 @@ 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
+ # shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +155,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -197,16 +200,20 @@ if "$cygwin" || "$msys" ; then
done
fi
-# 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.
+
+# 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"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew.bat b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew.bat
index ea603b410240..db3a6ac207e5 100644
--- a/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew.bat
+++ b/modules/openapi-generator-gradle-plugin/samples/local-spec/gradlew.bat
@@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@@ -34,7 +36,7 @@ set APP_HOME=%DIRNAME%
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=-Dfile.encoding=UTF-8 "-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -43,11 +45,11 @@ 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.
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -57,22 +59,22 @@ 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.
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+set CLASSPATH=
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt
index 7588e1f7619e..432957c90e22 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/OpenApiGeneratorPlugin.kt
@@ -26,6 +26,7 @@ import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
import org.openapitools.generator.gradle.plugin.tasks.GeneratorsTask
import org.openapitools.generator.gradle.plugin.tasks.MetaTask
import org.openapitools.generator.gradle.plugin.tasks.ValidateTask
+import kotlin.jvm.java
/**
* A plugin providing common Open API Generator use cases.
@@ -60,102 +61,102 @@ class OpenApiGeneratorPlugin : Plugin {
project
)
- generate.outputDir.set("$buildDir/generate-resources/main")
+ generate.outputDir.convention(project.layout.buildDirectory.map { it.asFile.resolve("generate-resources/main").absolutePath })
tasks.apply {
- register("openApiGenerators", GeneratorsTask::class.java).configure {
- group = pluginGroup
- description = "Lists generators available via Open API Generators."
+ register("openApiGenerators", GeneratorsTask::class.java).configure { task ->
+ task.group = pluginGroup
+ task.description = "Lists generators available via Open API Generators."
- include.set(generators.include)
+ task.include.set(generators.include)
}
- register("openApiMeta", MetaTask::class.java).configure {
- group = pluginGroup
- description = "Generates a new generator to be consumed via Open API Generator."
+ register("openApiMeta", MetaTask::class.java).configure { task ->
+ task.group = pluginGroup
+ task.description = "Generates a new generator to be consumed via Open API Generator."
- generatorName.set(meta.generatorName)
- packageName.set(meta.packageName)
- outputFolder.set(meta.outputFolder)
+ task.generatorName.set(meta.generatorName)
+ task.packageName.set(meta.packageName)
+ task.outputFolder.set(meta.outputFolder)
}
- register("openApiValidate", ValidateTask::class.java).configure {
- group = pluginGroup
- description = "Validates an Open API 2.0 or 3.x specification document."
+ register("openApiValidate", ValidateTask::class.java).configure { task ->
+ task.group = pluginGroup
+ task.description = "Validates an Open API 2.0 or 3.x specification document."
- inputSpec.set(validate.inputSpec)
- recommend.set(validate.recommend)
- treatWarningsAsErrors.set(validate.treatWarningsAsErrors)
+ task.inputSpec.set(validate.inputSpec)
+ task.recommend.set(validate.recommend)
+ task.treatWarningsAsErrors.set(validate.treatWarningsAsErrors)
}
- register("openApiGenerate", GenerateTask::class.java).configure {
- group = pluginGroup
- description =
+ register("openApiGenerate", GenerateTask::class.java).configure { task ->
+ task.group = pluginGroup
+ task.description =
"Generate code via Open API Tools Generator for Open API 2.0 or 3.x specification documents."
- verbose.set(generate.verbose)
- validateSpec.set(generate.validateSpec)
- generatorName.set(generate.generatorName)
- outputDir.set(generate.outputDir)
- inputSpec.set(generate.inputSpec)
- inputSpecRootDirectory.set(generate.inputSpecRootDirectory)
- inputSpecRootDirectorySkipMerge.set(generate.inputSpecRootDirectorySkipMerge)
- remoteInputSpec.set(generate.remoteInputSpec)
- templateDir.set(generate.templateDir)
- templateResourcePath.set(generate.templateResourcePath)
- auth.set(generate.auth)
- globalProperties.set(generate.globalProperties)
- configFile.set(generate.configFile)
- skipOverwrite.set(generate.skipOverwrite)
- packageName.set(generate.packageName)
- apiPackage.set(generate.apiPackage)
- modelPackage.set(generate.modelPackage)
- modelNamePrefix.set(generate.modelNamePrefix)
- modelNameSuffix.set(generate.modelNameSuffix)
- apiNameSuffix.set(generate.apiNameSuffix)
- instantiationTypes.set(generate.instantiationTypes)
- typeMappings.set(generate.typeMappings)
- additionalProperties.set(generate.additionalProperties)
- serverVariables.set(generate.serverVariables)
- languageSpecificPrimitives.set(generate.languageSpecificPrimitives)
- openapiGeneratorIgnoreList.set(generate.openapiGeneratorIgnoreList)
- importMappings.set(generate.importMappings)
- schemaMappings.set(generate.schemaMappings)
- inlineSchemaNameMappings.set(generate.inlineSchemaNameMappings)
- inlineSchemaOptions.set(generate.inlineSchemaOptions)
- nameMappings.set(generate.nameMappings)
- modelNameMappings.set(generate.modelNameMappings)
- parameterNameMappings.set(generate.parameterNameMappings)
- openapiNormalizer.set(generate.openapiNormalizer)
- invokerPackage.set(generate.invokerPackage)
- groupId.set(generate.groupId)
- id.set(generate.id)
- version.set(generate.version)
- library.set(generate.library)
- gitHost.set(generate.gitHost)
- gitUserId.set(generate.gitUserId)
- gitRepoId.set(generate.gitRepoId)
- releaseNote.set(generate.releaseNote)
- httpUserAgent.set(generate.httpUserAgent)
- reservedWordsMappings.set(generate.reservedWordsMappings)
- ignoreFileOverride.set(generate.ignoreFileOverride)
- removeOperationIdPrefix.set(generate.removeOperationIdPrefix)
- skipOperationExample.set(generate.skipOperationExample)
- apiFilesConstrainedTo.set(generate.apiFilesConstrainedTo)
- modelFilesConstrainedTo.set(generate.modelFilesConstrainedTo)
- supportingFilesConstrainedTo.set(generate.supportingFilesConstrainedTo)
- generateModelTests.set(generate.generateModelTests)
- generateModelDocumentation.set(generate.generateModelDocumentation)
- generateApiTests.set(generate.generateApiTests)
- generateApiDocumentation.set(generate.generateApiDocumentation)
- configOptions.set(generate.configOptions)
- logToStderr.set(generate.logToStderr)
- enablePostProcessFile.set(generate.enablePostProcessFile)
- skipValidateSpec.set(generate.skipValidateSpec)
- generateAliasAsModel.set(generate.generateAliasAsModel)
- engine.set(generate.engine)
- cleanupOutput.set(generate.cleanupOutput)
- dryRun.set(generate.dryRun)
+ task.verbose.set(generate.verbose)
+ task.validateSpec.set(generate.validateSpec)
+ task.generatorName.set(generate.generatorName)
+ task.outputDir.set(generate.outputDir)
+ task.inputSpec.set(generate.inputSpec)
+ task.inputSpecRootDirectory.set(generate.inputSpecRootDirectory)
+ task.inputSpecRootDirectorySkipMerge.set(generate.inputSpecRootDirectorySkipMerge)
+ task.remoteInputSpec.set(generate.remoteInputSpec)
+ task.templateDir.set(generate.templateDir)
+ task.templateResourcePath.set(generate.templateResourcePath)
+ task.auth.set(generate.auth)
+ task.globalProperties.set(generate.globalProperties)
+ task.configFile.set(generate.configFile)
+ task.skipOverwrite.set(generate.skipOverwrite)
+ task.packageName.set(generate.packageName)
+ task.apiPackage.set(generate.apiPackage)
+ task.modelPackage.set(generate.modelPackage)
+ task.modelNamePrefix.set(generate.modelNamePrefix)
+ task.modelNameSuffix.set(generate.modelNameSuffix)
+ task.apiNameSuffix.set(generate.apiNameSuffix)
+ task.instantiationTypes.set(generate.instantiationTypes)
+ task.typeMappings.set(generate.typeMappings)
+ task.additionalProperties.set(generate.additionalProperties)
+ task.serverVariables.set(generate.serverVariables)
+ task.languageSpecificPrimitives.set(generate.languageSpecificPrimitives)
+ task.openapiGeneratorIgnoreList.set(generate.openapiGeneratorIgnoreList)
+ task.importMappings.set(generate.importMappings)
+ task.schemaMappings.set(generate.schemaMappings)
+ task.inlineSchemaNameMappings.set(generate.inlineSchemaNameMappings)
+ task.inlineSchemaOptions.set(generate.inlineSchemaOptions)
+ task.nameMappings.set(generate.nameMappings)
+ task.modelNameMappings.set(generate.modelNameMappings)
+ task.parameterNameMappings.set(generate.parameterNameMappings)
+ task.openapiNormalizer.set(generate.openapiNormalizer)
+ task.invokerPackage.set(generate.invokerPackage)
+ task.groupId.set(generate.groupId)
+ task.id.set(generate.id)
+ task.version.set(generate.version)
+ task.library.set(generate.library)
+ task.gitHost.set(generate.gitHost)
+ task.gitUserId.set(generate.gitUserId)
+ task.gitRepoId.set(generate.gitRepoId)
+ task.releaseNote.set(generate.releaseNote)
+ task.httpUserAgent.set(generate.httpUserAgent)
+ task.reservedWordsMappings.set(generate.reservedWordsMappings)
+ task.ignoreFileOverride.set(generate.ignoreFileOverride)
+ task.removeOperationIdPrefix.set(generate.removeOperationIdPrefix)
+ task.skipOperationExample.set(generate.skipOperationExample)
+ task.apiFilesConstrainedTo.set(generate.apiFilesConstrainedTo)
+ task.modelFilesConstrainedTo.set(generate.modelFilesConstrainedTo)
+ task.supportingFilesConstrainedTo.set(generate.supportingFilesConstrainedTo)
+ task.generateModelTests.set(generate.generateModelTests)
+ task.generateModelDocumentation.set(generate.generateModelDocumentation)
+ task.generateApiTests.set(generate.generateApiTests)
+ task.generateApiDocumentation.set(generate.generateApiDocumentation)
+ task.configOptions.set(generate.configOptions)
+ task.logToStderr.set(generate.logToStderr)
+ task.enablePostProcessFile.set(generate.enablePostProcessFile)
+ task.skipValidateSpec.set(generate.skipValidateSpec)
+ task.generateAliasAsModel.set(generate.generateAliasAsModel)
+ task.engine.set(generate.engine)
+ task.cleanupOutput.set(generate.cleanupOutput)
+ task.dryRun.set(generate.dryRun)
}
}
}
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGenerateExtension.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGenerateExtension.kt
index 3d5a3489cf01..2175e30532f0 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGenerateExtension.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGenerateExtension.kt
@@ -19,9 +19,6 @@ package org.openapitools.generator.gradle.plugin.extensions
import org.gradle.api.Project
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Optional
-import org.gradle.kotlin.dsl.listProperty
-import org.gradle.kotlin.dsl.mapProperty
-import org.gradle.kotlin.dsl.property
/**
* Gradle project level extension object definition for the `generate` task
@@ -32,22 +29,22 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
/**
* The verbosity of generation
*/
- val verbose = project.objects.property()
+ val verbose = project.objects.property(Boolean::class.javaObjectType)
/**
* Whether an input specification should be validated upon generation.
*/
- val validateSpec = project.objects.property()
+ val validateSpec = project.objects.property(Boolean::class.javaObjectType)
/**
* The name of the generator which will handle codegen. (see "openApiGenerators" task)
*/
- val generatorName = project.objects.property()
+ val generatorName = project.objects.property(String::class.java)
/**
* The output target directory into which code will be generated.
*/
- val outputDir = project.objects.property()
+ val outputDir = project.objects.property(String::class.java)
/**
* The Open API 2.0/3.x specification location.
@@ -56,7 +53,7 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* changes to any $ref referenced files. Use the `inputSpecRootDirectory` property to have Gradle track changes to
* an entire directory of spec files.
*/
- val inputSpec = project.objects.property()
+ val inputSpec = project.objects.property(String::class.java)
/**
* Local root folder with spec files.
@@ -64,232 +61,233 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* By default, a merged spec file will be generated based on the contents of the directory. To disable this, set the
* `inputSpecRootDirectorySkipMerge` property.
*/
- val inputSpecRootDirectory = project.objects.property()
+ val inputSpecRootDirectory = project.objects.property(String::class.java)
/**
* Skip bundling all spec files into a merged spec file, if true.
*
* Default false.
*/
- val inputSpecRootDirectorySkipMerge = project.objects.property()
+ val inputSpecRootDirectorySkipMerge = project.objects.property(Boolean::class.javaObjectType)
/**
* The remote Open API 2.0/3.x specification URL location.
*/
- val remoteInputSpec = project.objects.property()
+ val remoteInputSpec = project.objects.property(String::class.java)
/**
* The template directory holding a custom template.
*/
- val templateDir = project.objects.property()
+ val templateDir = project.objects.property(String::class.java)
/**
* The template location (which may be a directory or a classpath location) holding custom templates.
*/
- val templateResourcePath = project.objects.property()
+ val templateResourcePath = project.objects.property(String::class.java)
/**
* Adds authorization headers when fetching the OpenAPI definitions remotely.
* Pass in a URL-encoded string of name:header with a comma separating multiple values
*/
- val auth = project.objects.property()
+ val auth = project.objects.property(String::class.java)
/**
* Sets specified global properties.
*/
- val globalProperties = project.objects.mapProperty()
+ val globalProperties = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Path to json configuration file.
* File content should be in a json format { "optionKey":"optionValue", "optionKey1":"optionValue1"...}
* Supported options can be different for each language. Run config-help -g {generator name} command for language specific config options.
*/
- val configFile = project.objects.property()
+ val configFile = project.objects.property(String::class.java)
/**
* Specifies if the existing files should be overwritten during the generation.
*/
- val skipOverwrite = project.objects.property()
+ val skipOverwrite = project.objects.property(Boolean::class.javaObjectType)
/**
* Package for generated classes (where supported)
*/
- val packageName = project.objects.property()
+ val packageName = project.objects.property(String::class.java)
/**
* Package for generated api classes
*/
- val apiPackage = project.objects.property()
+ val apiPackage = project.objects.property(String::class.java)
/**
* Package for generated models
*/
- val modelPackage = project.objects.property()
+ val modelPackage = project.objects.property(String::class.java)
/**
* Prefix that will be prepended to all model names. Default is the empty string.
*/
- val modelNamePrefix = project.objects.property()
+ val modelNamePrefix = project.objects.property(String::class.java)
/**
* Suffix that will be appended to all model names. Default is the empty string.
*/
- val modelNameSuffix = project.objects.property()
+ val modelNameSuffix = project.objects.property(String::class.java)
/**
* Suffix that will be appended to all api names. Default is the empty string.
*/
- val apiNameSuffix = project.objects.property()
+ val apiNameSuffix = project.objects.property(String::class.java)
/**
* Sets instantiation type mappings.
*/
- val instantiationTypes = project.objects.mapProperty()
+ val instantiationTypes = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Sets mappings between OpenAPI spec types and generated code types.
*/
- val typeMappings = project.objects.mapProperty()
+ val typeMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Sets additional properties that can be referenced by the mustache templates.
*/
- val additionalProperties = project.objects.mapProperty()
+ @Suppress("UNCHECKED_CAST")
+ val additionalProperties = project.objects.mapProperty(String::class.java, Any::class.java)
/**
* Sets server variable for server URL template substitution, in the format of name=value,name=value.
*/
- val serverVariables = project.objects.mapProperty()
+ val serverVariables = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies additional language specific primitive types in the format of type1,type2,type3,type3. For example: String,boolean,Boolean,Double.
*/
- val languageSpecificPrimitives = project.objects.listProperty()
+ val languageSpecificPrimitives = project.objects.listProperty(String::class.java)
/**
* Specifies .openapi-generator-ignore list in the form of relative/path/to/file1,relative/path/to/file2. For example: README.md,pom.xml.
*/
- val openapiGeneratorIgnoreList = project.objects.listProperty()
+ val openapiGeneratorIgnoreList = project.objects.listProperty(String::class.java)
/**
* Specifies mappings between a given class and the import that should be used for that class.
*/
- val importMappings = project.objects.mapProperty()
+ val importMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between a given schema and the new one
*/
- val schemaMappings = project.objects.mapProperty()
+ val schemaMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between an inline schema name and the new name
*/
- val inlineSchemaNameMappings = project.objects.mapProperty()
+ val inlineSchemaNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies options for inline schemas
*/
- val inlineSchemaOptions = project.objects.mapProperty()
+ val inlineSchemaOptions = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between a property name and the new name
*/
- val nameMappings = project.objects.mapProperty()
+ val nameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between a parameter name and the new name
*/
- val parameterNameMappings = project.objects.mapProperty()
+ val parameterNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between a model name and the new name
*/
- val modelNameMappings = project.objects.mapProperty()
+ val modelNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between an enum name and the new name
*/
- val enumNameMappings = project.objects.mapProperty()
+ val enumNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between an operation id name and the new name
*/
- val operationIdNameMappings = project.objects.mapProperty()
+ val operationIdNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings (rules) in OpenAPI normalizer
*/
- val openapiNormalizer = project.objects.mapProperty()
+ val openapiNormalizer = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Root package for generated code.
*/
- val invokerPackage = project.objects.property()
+ val invokerPackage = project.objects.property(String::class.java)
/**
* GroupId in generated pom.xml/build.gradle.kts or other build script. Language-specific conversions occur in non-jvm generators.
*/
- val groupId = project.objects.property()
+ val groupId = project.objects.property(String::class.java)
/**
* ArtifactId in generated pom.xml/build.gradle.kts or other build script. Language-specific conversions occur in non-jvm generators.
*/
- val id = project.objects.property()
+ val id = project.objects.property(String::class.java)
/**
* Artifact version in generated pom.xml/build.gradle.kts or other build script. Language-specific conversions occur in non-jvm generators.
*/
- val version = project.objects.property()
+ val version = project.objects.property(String::class.java)
/**
* Reference the library template (sub-template) of a generator.
*/
- val library = project.objects.property()
+ val library = project.objects.property(String::class.java)
/**
* Git host, e.g. gitlab.com.
*/
- val gitHost = project.objects.property()
+ val gitHost = project.objects.property(String::class.java)
/**
* Git user ID, e.g. openapitools.
*/
- val gitUserId = project.objects.property()
+ val gitUserId = project.objects.property(String::class.java)
/**
* Git repo ID, e.g. openapi-generator.
*/
- val gitRepoId = project.objects.property()
+ val gitRepoId = project.objects.property(String::class.java)
/**
* Release note, default to 'Minor update'.
*/
- val releaseNote = project.objects.property()
+ val releaseNote = project.objects.property(String::class.java)
/**
* HTTP user agent, e.g. codegen_csharp_api_client, default to 'OpenAPI-Generator/{packageVersion}/{language}'
*/
- val httpUserAgent = project.objects.property()
+ val httpUserAgent = project.objects.property(String::class.java)
/**
* Specifies how a reserved name should be escaped to. Otherwise, the default _ is used.
*/
- val reservedWordsMappings = project.objects.mapProperty()
+ val reservedWordsMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies an override location for the .openapi-generator-ignore file. Most useful on initial generation.
*/
- val ignoreFileOverride = project.objects.property()
+ val ignoreFileOverride = project.objects.property(String::class.java)
/**
* Remove prefix of operationId, e.g. config_getId => getId
*/
- val removeOperationIdPrefix = project.objects.property()
+ val removeOperationIdPrefix = project.objects.property(Boolean::class.javaObjectType)
/**
* Skip examples defined in the operation
*/
- val skipOperationExample = project.objects.property()
+ val skipOperationExample = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines which API-related files should be generated. This allows you to create a subset of generated files (or none at all).
@@ -298,7 +296,7 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* in others being disabled. That is, OpenAPI Generator considers any one of these to define a subset of generation.
* For more control over generation of individual files, configure an ignore file and refer to it via [ignoreFileOverride].
*/
- val apiFilesConstrainedTo = project.objects.listProperty()
+ val apiFilesConstrainedTo = project.objects.listProperty(String::class.java)
/**
* Defines which model-related files should be generated. This allows you to create a subset of generated files (or none at all).
@@ -307,7 +305,7 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* in others being disabled. That is, OpenAPI Generator considers any one of these to define a subset of generation.
* For more control over generation of individual files, configure an ignore file and refer to it via [ignoreFileOverride].
*/
- val modelFilesConstrainedTo = project.objects.listProperty()
+ val modelFilesConstrainedTo = project.objects.listProperty(String::class.java)
/**
* Defines which supporting files should be generated. This allows you to create a subset of generated files (or none at all).
@@ -319,7 +317,7 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* in others being disabled. That is, OpenAPI Generator considers any one of these to define a subset of generation.
* For more control over generation of individual files, configure an ignore file and refer to it via [ignoreFileOverride].
*/
- val supportingFilesConstrainedTo = project.objects.listProperty()
+ val supportingFilesConstrainedTo = project.objects.listProperty(String::class.java)
/**
* Defines whether model-related _test_ files should be generated.
@@ -329,7 +327,7 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* For more control over generation of individual files, configure an ignore file and
* refer to it via [ignoreFileOverride].
*/
- val generateModelTests = project.objects.property()
+ val generateModelTests = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether model-related _documentation_ files should be generated.
@@ -339,7 +337,7 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* For more control over generation of individual files, configure an ignore file and
* refer to it via [ignoreFileOverride].
*/
- val generateModelDocumentation = project.objects.property()
+ val generateModelDocumentation = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether api-related _test_ files should be generated.
@@ -349,7 +347,7 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* For more control over generation of individual files, configure an ignore file and
* refer to it via [ignoreFileOverride].
*/
- val generateApiTests = project.objects.property()
+ val generateApiTests = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether api-related _documentation_ files should be generated.
@@ -359,12 +357,12 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* For more control over generation of individual files, configure an ignore file and
* refer to it via [ignoreFileOverride].
*/
- val generateApiDocumentation = project.objects.property()
+ val generateApiDocumentation = project.objects.property(Boolean::class.javaObjectType)
/**
* To write all log messages (not just errors) to STDOUT
*/
- val logToStderr = project.objects.property()
+ val logToStderr = project.objects.property(Boolean::class.javaObjectType)
/**
* To enable the file post-processing hook. This enables executing an external post-processor (usually a linter program).
@@ -372,40 +370,40 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
* LANG_POST_PROCESS_FILE (e.g. GO_POST_PROCESS_FILE, SCALA_POST_PROCESS_FILE). Please open an issue if your target
* generator does not support this functionality.
*/
- val enablePostProcessFile = project.objects.property()
+ val enablePostProcessFile = project.objects.property(Boolean::class.javaObjectType)
/**
* To skip spec validation. When true, we will skip the default behavior of validating a spec before generation.
*/
- val skipValidateSpec = project.objects.property()
+ val skipValidateSpec = project.objects.property(Boolean::class.javaObjectType)
/**
* To generate alias (array, list, map) as model. When false, top-level objects defined as array, list, or map will result in those
* definitions generated as top-level Array-of-items, List-of-items, Map-of-items definitions.
* When true, A model representation either containing or extending the array,list,map (depending on specific generator implementation) will be generated.
*/
- val generateAliasAsModel = project.objects.property()
+ val generateAliasAsModel = project.objects.property(Boolean::class.javaObjectType)
/**
* A map of options specific to a generator.
*/
- val configOptions = project.objects.mapProperty()
+ val configOptions = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Templating engine: "mustache" (default) or "handlebars" (beta)
*/
- val engine = project.objects.property()
+ val engine = project.objects.property(String::class.java)
/**
* Defines whether the output dir should be cleaned up before generating the output.
*
*/
- val cleanupOutput = project.objects.property()
+ val cleanupOutput = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether the generator should run in dry-run mode.
*/
- val dryRun = project.objects.property()
+ val dryRun = project.objects.property(Boolean::class.javaObjectType)
init {
applyDefaults()
@@ -413,22 +411,22 @@ open class OpenApiGeneratorGenerateExtension(project: Project) {
@Suppress("MemberVisibilityCanBePrivate")
fun applyDefaults() {
- releaseNote.set("Minor update")
- inputSpecRootDirectorySkipMerge.set(false)
- modelNamePrefix.set("")
- modelNameSuffix.set("")
- apiNameSuffix.set("")
- generateModelTests.set(true)
- generateModelDocumentation.set(true)
- generateApiTests.set(true)
- generateApiDocumentation.set(true)
- configOptions.set(mapOf())
- validateSpec.set(true)
- logToStderr.set(false)
- enablePostProcessFile.set(false)
- skipValidateSpec.set(false)
- generateAliasAsModel.set(false)
- cleanupOutput.set(false)
- dryRun.set(false)
+ releaseNote.convention("Minor update")
+ inputSpecRootDirectorySkipMerge.convention(false)
+ modelNamePrefix.convention("")
+ modelNameSuffix.convention("")
+ apiNameSuffix.convention("")
+ generateModelTests.convention(true)
+ generateModelDocumentation.convention(true)
+ generateApiTests.convention(true)
+ generateApiDocumentation.convention(true)
+ configOptions.convention(mapOf())
+ validateSpec.convention(true)
+ logToStderr.convention(false)
+ enablePostProcessFile.convention(false)
+ skipValidateSpec.convention(false)
+ generateAliasAsModel.convention(false)
+ cleanupOutput.convention(false)
+ dryRun.convention(false)
}
}
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGeneratorsExtension.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGeneratorsExtension.kt
index 8f91b1ea3420..a01c17c39256 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGeneratorsExtension.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorGeneratorsExtension.kt
@@ -17,7 +17,6 @@
package org.openapitools.generator.gradle.plugin.extensions
import org.gradle.api.Project
-import org.gradle.kotlin.dsl.listProperty
import org.openapitools.codegen.meta.Stability
/**
@@ -29,7 +28,7 @@ open class OpenApiGeneratorGeneratorsExtension(project: Project) {
/**
* A list of stability indexes to include (value: all,beta,stable,experimental,deprecated). Excludes deprecated by default.
*/
- val include = project.objects.listProperty()
+ val include = project.objects.listProperty(String::class.java)
init {
applyDefaults()
@@ -37,5 +36,5 @@ open class OpenApiGeneratorGeneratorsExtension(project: Project) {
@Suppress("MemberVisibilityCanBePrivate")
fun applyDefaults() =
- include.set(Stability.values().map { it.value() }.filterNot { it == Stability.DEPRECATED.value() })
+ include.convention(Stability.values().map { it.value() }.filterNot { it == Stability.DEPRECATED.value() })
}
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorMetaExtension.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorMetaExtension.kt
index e78070ab120c..a98680906932 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorMetaExtension.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorMetaExtension.kt
@@ -17,7 +17,6 @@
package org.openapitools.generator.gradle.plugin.extensions
import org.gradle.api.Project
-import org.gradle.kotlin.dsl.property
/**
* Gradle project level extension object definition for the meta-generator task
@@ -28,21 +27,21 @@ open class OpenApiGeneratorMetaExtension(project: Project) {
/**
* The human-readable generator name of the newly created template generator.
*/
- val generatorName = project.objects.property()
+ val generatorName = project.objects.property(String::class.java)
/**
* The packageName generatorName to put the main class into (defaults to org.openapitools.codegen)
*/
- val packageName = project.objects.property()
+ val packageName = project.objects.property(String::class.java)
/**
* Where to write the generated files (current dir by default).
*/
- val outputFolder = project.objects.property()
+ val outputFolder = project.objects.property(String::class.java)
init {
- generatorName.set("default")
- packageName.set("org.openapitools.codegen")
- outputFolder.set("")
+ generatorName.convention("default")
+ packageName.convention("org.openapitools.codegen")
+ outputFolder.convention("")
}
}
\ No newline at end of file
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorValidateExtension.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorValidateExtension.kt
index 3eaff1b78599..6ea3e74db47a 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorValidateExtension.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/extensions/OpenApiGeneratorValidateExtension.kt
@@ -17,7 +17,6 @@
package org.openapitools.generator.gradle.plugin.extensions
import org.gradle.api.Project
-import org.gradle.kotlin.dsl.property
/**
* Gradle project level extension object definition for the generators task
@@ -28,15 +27,15 @@ open class OpenApiGeneratorValidateExtension(project: Project) {
/**
* The input specification to validate. Supports all formats supported by the Parser.
*/
- val inputSpec = project.objects.property()
+ val inputSpec = project.objects.property(String::class.java)
/**
* Whether to offer recommendations related to the validated specification document.
*/
- val recommend = project.objects.property().convention(true)
+ val recommend = project.objects.property(Boolean::class.javaObjectType).convention(true)
/**
* Whether to treat warnings as errors and fail the task.
*/
- val treatWarningsAsErrors = project.objects.property().convention(false)
+ val treatWarningsAsErrors = project.objects.property(Boolean::class.javaObjectType).convention(false)
}
\ No newline at end of file
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
index 61b66a1d409a..72cf310dcbb1 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt
@@ -36,9 +36,6 @@ import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.options.Option
import org.gradle.internal.logging.text.StyledTextOutput
import org.gradle.internal.logging.text.StyledTextOutputFactory
-import org.gradle.kotlin.dsl.listProperty
-import org.gradle.kotlin.dsl.mapProperty
-import org.gradle.kotlin.dsl.property
import org.gradle.util.GradleVersion
import org.openapitools.codegen.CodegenConstants
import org.openapitools.codegen.DefaultGenerator
@@ -63,21 +60,21 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val verbose = project.objects.property()
+ val verbose = project.objects.property(Boolean::class.javaObjectType)
/**
* Whether an input specification should be validated upon generation.
*/
@get:Optional
@get:Input
- val validateSpec = project.objects.property()
+ val validateSpec = project.objects.property(Boolean::class.javaObjectType)
/**
* The name of the generator which will handle codegen. (see "openApiGenerators" task)
*/
@get:Optional
@get:Input
- val generatorName = project.objects.property()
+ val generatorName = project.objects.property(String::class.java)
/**
* This is the configuration for reference paths where schemas for openapi generation are stored
@@ -86,14 +83,14 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
@get:Optional
@get:InputDirectory
@get:PathSensitive(PathSensitivity.ABSOLUTE)
- val schemaLocation = project.objects.property()
+ val schemaLocation = project.objects.property(String::class.java)
/**
* The output target directory into which code will be generated.
*/
@get:Optional
@get:OutputDirectory
- val outputDir = project.objects.property()
+ val outputDir = project.objects.property(String::class.java)
@Suppress("unused")
@set:Option(option = "input", description = "The input specification.")
@@ -113,7 +110,7 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
@get:Optional
@get:InputFile
@get:PathSensitive(PathSensitivity.RELATIVE)
- val inputSpec = project.objects.property()
+ val inputSpec = project.objects.property(String::class.java)
/**
* Local root folder with spec files.
@@ -124,28 +121,28 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
@get:Optional
@get:InputDirectory
@get:PathSensitive(PathSensitivity.RELATIVE)
- val inputSpecRootDirectory = project.objects.property();
+ val inputSpecRootDirectory = project.objects.property(String::class.java)
/**
* Skip bundling all spec files into a merged spec file, if true.
*/
@get:Input
@get:Optional
- val inputSpecRootDirectorySkipMerge = project.objects.property()
+ val inputSpecRootDirectorySkipMerge = project.objects.property(Boolean::class.javaObjectType)
/**
* Name of the file that will contain all merged specs
*/
@get:Input
@get:Optional
- val mergedFileName = project.objects.property();
+ val mergedFileName = project.objects.property(String::class.java)
/**
* The remote Open API 2.0/3.x specification URL location.
*/
@get:Input
@get:Optional
- val remoteInputSpec = project.objects.property()
+ val remoteInputSpec = project.objects.property(String::class.java)
/**
* The template directory holding a custom template.
@@ -153,14 +150,14 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
@get:Optional
@get:InputDirectory
@get:PathSensitive(PathSensitivity.RELATIVE)
- val templateDir = project.objects.property()
+ val templateDir = project.objects.property(String::class.java)
/**
* Resource path containing template files.
*/
@get:Optional
@get:Input
- val templateResourcePath = project.objects.property()
+ val templateResourcePath = project.objects.property(String::class.java)
/**
* Adds authorization headers when fetching the OpenAPI definitions remotely.
@@ -168,14 +165,14 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val auth = project.objects.property()
+ val auth = project.objects.property(String::class.java)
/**
* Sets specified global properties.
*/
@get:Optional
@get:Input
- val globalProperties = project.objects.mapProperty()
+ val globalProperties = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Path to json configuration file.
@@ -185,70 +182,70 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
@get:Optional
@get:InputFile
@get:PathSensitive(PathSensitivity.RELATIVE)
- val configFile = project.objects.property()
+ val configFile = project.objects.property(String::class.java)
/**
* Specifies if the existing files should be overwritten during the generation.
*/
@get:Optional
@get:Input
- val skipOverwrite = project.objects.property()
+ val skipOverwrite = project.objects.property(Boolean::class.javaObjectType)
/**
* Package for generated classes (where supported)
*/
@get:Optional
@get:Input
- val packageName = project.objects.property()
+ val packageName = project.objects.property(String::class.java)
/**
* Package for generated api classes
*/
@get:Optional
@get:Input
- val apiPackage = project.objects.property()
+ val apiPackage = project.objects.property(String::class.java)
/**
* Package for generated models
*/
@get:Optional
@get:Input
- val modelPackage = project.objects.property()
+ val modelPackage = project.objects.property(String::class.java)
/**
* Prefix that will be prepended to all model names. Default is the empty string.
*/
@get:Optional
@get:Input
- val modelNamePrefix = project.objects.property()
+ val modelNamePrefix = project.objects.property(String::class.java)
/**
* Suffix that will be appended to all model names. Default is the empty string.
*/
@get:Optional
@get:Input
- val modelNameSuffix = project.objects.property()
+ val modelNameSuffix = project.objects.property(String::class.java)
/**
* Suffix that will be appended to all api names. Default is the empty string.
*/
@get:Optional
@get:Input
- val apiNameSuffix = project.objects.property()
+ val apiNameSuffix = project.objects.property(String::class.java)
/**
* Sets instantiation type mappings.
*/
@get:Optional
@get:Input
- val instantiationTypes = project.objects.mapProperty()
+ val instantiationTypes = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Sets mappings between OpenAPI spec types and generated code types.
*/
@get:Optional
@get:Input
- val typeMappings = project.objects.mapProperty()
+ val typeMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Sets additional properties that can be referenced by the mustache templates in the format of name=value,name=value.
@@ -256,7 +253,8 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val additionalProperties = project.objects.mapProperty()
+ @Suppress("UNCHECKED_CAST")
+ val additionalProperties = project.objects.mapProperty(String::class.java, Any::class.java)
/**
* Sets server variable for server URL template substitution, in the format of name=value,name=value.
@@ -264,168 +262,168 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val serverVariables = project.objects.mapProperty()
+ val serverVariables = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies additional language specific primitive types in the format of type1,type2,type3,type3. For example: String,boolean,Boolean,Double.
*/
@get:Optional
@get:Input
- val languageSpecificPrimitives = project.objects.listProperty()
+ val languageSpecificPrimitives = project.objects.listProperty(String::class.java)
/**
* Specifies .openapi-generator-ignore list in the form of relative/path/to/file1,relative/path/to/file2. For example: README.md,pom.xml.
*/
@get:Optional
@get:Input
- val openapiGeneratorIgnoreList = project.objects.listProperty()
+ val openapiGeneratorIgnoreList = project.objects.listProperty(String::class.java)
/**
* Specifies mappings between a given class and the import that should be used for that class.
*/
@get:Optional
@get:Input
- val importMappings = project.objects.mapProperty()
+ val importMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between a given schema and the new one.
*/
@get:Optional
@get:Input
- val schemaMappings = project.objects.mapProperty()
+ val schemaMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between the inline scheme name and the new name
*/
@get:Optional
@get:Input
- val inlineSchemaNameMappings = project.objects.mapProperty()
+ val inlineSchemaNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies options for inline schemas
*/
@get:Optional
@get:Input
- val inlineSchemaOptions = project.objects.mapProperty()
+ val inlineSchemaOptions = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between the property name and the new name
*/
@get:Optional
@get:Input
- val nameMappings = project.objects.mapProperty()
+ val nameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between the parameter name and the new name
*/
@get:Optional
@get:Input
- val parameterNameMappings = project.objects.mapProperty()
+ val parameterNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between the model name and the new name
*/
@get:Optional
@get:Input
- val modelNameMappings = project.objects.mapProperty()
+ val modelNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between the enum name and the new name
*/
@get:Optional
@get:Input
- val enumNameMappings = project.objects.mapProperty()
+ val enumNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings between the operation id name and the new name
*/
@get:Optional
@get:Input
- val operationIdNameMappings = project.objects.mapProperty()
+ val operationIdNameMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies mappings (rules) in OpenAPI normalizer
*/
@get:Optional
@get:Input
- val openapiNormalizer = project.objects.mapProperty()
+ val openapiNormalizer = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Root package for generated code.
*/
@get:Optional
@get:Input
- val invokerPackage = project.objects.property()
+ val invokerPackage = project.objects.property(String::class.java)
/**
* GroupId in generated pom.xml/build.gradle.kts or other build script. Language-specific conversions occur in non-jvm generators.
*/
@get:Optional
@get:Input
- val groupId = project.objects.property()
+ val groupId = project.objects.property(String::class.java)
/**
* ArtifactId in generated pom.xml/build.gradle.kts or other build script. Language-specific conversions occur in non-jvm generators.
*/
@get:Optional
@get:Input
- val id = project.objects.property()
+ val id = project.objects.property(String::class.java)
/**
* Artifact version in generated pom.xml/build.gradle.kts or other build script. Language-specific conversions occur in non-jvm generators.
*/
@get:Optional
@get:Input
- val version = project.objects.property()
+ val version = project.objects.property(String::class.java)
/**
* Reference the library template (sub-template) of a generator.
*/
@get:Optional
@get:Input
- val library = project.objects.property()
+ val library = project.objects.property(String::class.java)
/**
* Git host, e.g. gitlab.com.
*/
@get:Optional
@get:Input
- val gitHost = project.objects.property()
+ val gitHost = project.objects.property(String::class.java)
/**
* Git user ID, e.g. openapitools.
*/
@get:Optional
@get:Input
- val gitUserId = project.objects.property()
+ val gitUserId = project.objects.property(String::class.java)
/**
* Git repo ID, e.g. openapi-generator.
*/
@get:Optional
@get:Input
- val gitRepoId = project.objects.property()
+ val gitRepoId = project.objects.property(String::class.java)
/**
* Release note, default to 'Minor update'.
*/
@get:Optional
@get:Input
- val releaseNote = project.objects.property()
+ val releaseNote = project.objects.property(String::class.java)
/**
* HTTP user agent, e.g. codegen_csharp_api_client, default to 'OpenAPI-Generator/{packageVersion}/{language}'
*/
@get:Optional
@get:Input
- val httpUserAgent = project.objects.property()
+ val httpUserAgent = project.objects.property(String::class.java)
/**
* Specifies how a reserved name should be escaped to.
*/
@get:Optional
@get:Input
- val reservedWordsMappings = project.objects.mapProperty()
+ val reservedWordsMappings = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Specifies an override location for the .openapi-generator-ignore file. Most useful on initial generation.
@@ -433,21 +431,21 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
@get:Optional
@get:InputFile
@get:PathSensitive(PathSensitivity.RELATIVE)
- val ignoreFileOverride = project.objects.property()
+ val ignoreFileOverride = project.objects.property(String::class.java)
/**
* Remove prefix of operationId, e.g. config_getId => getId
*/
@get:Optional
@get:Input
- val removeOperationIdPrefix = project.objects.property()
+ val removeOperationIdPrefix = project.objects.property(Boolean::class.javaObjectType)
/**
* Remove examples defined in the operation
*/
@get:Optional
@get:Input
- val skipOperationExample = project.objects.property()
+ val skipOperationExample = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines which API-related files should be generated. This allows you to create a subset of generated files (or none at all).
@@ -460,7 +458,7 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val apiFilesConstrainedTo = project.objects.listProperty()
+ val apiFilesConstrainedTo = project.objects.listProperty(String::class.java)
/**
* Defines which model-related files should be generated. This allows you to create a subset of generated files (or none at all).
@@ -471,7 +469,7 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val modelFilesConstrainedTo = project.objects.listProperty()
+ val modelFilesConstrainedTo = project.objects.listProperty(String::class.java)
/**
* Defines which supporting files should be generated. This allows you to create a subset of generated files (or none at all).
@@ -485,7 +483,7 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val supportingFilesConstrainedTo = project.objects.listProperty()
+ val supportingFilesConstrainedTo = project.objects.listProperty(String::class.java)
/**
* Defines whether model-related _test_ files should be generated.
@@ -497,7 +495,7 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val generateModelTests = project.objects.property()
+ val generateModelTests = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether model-related _documentation_ files should be generated.
@@ -509,7 +507,7 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val generateModelDocumentation = project.objects.property()
+ val generateModelDocumentation = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether api-related _test_ files should be generated.
@@ -521,7 +519,7 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val generateApiTests = project.objects.property()
+ val generateApiTests = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether api-related _documentation_ files should be generated.
@@ -533,14 +531,14 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val generateApiDocumentation = project.objects.property()
+ val generateApiDocumentation = project.objects.property(Boolean::class.javaObjectType)
/**
* To write all log messages (not just errors) to STDOUT
*/
@get:Optional
@get:Input
- val logToStderr = project.objects.property()
+ val logToStderr = project.objects.property(Boolean::class.javaObjectType)
/**
* To enable the file post-processing hook. This enables executing an external post-processor (usually a linter program).
@@ -550,14 +548,14 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val enablePostProcessFile = project.objects.property()
+ val enablePostProcessFile = project.objects.property(Boolean::class.javaObjectType)
/**
* To skip spec validation. When true, we will skip the default behavior of validating a spec before generation.
*/
@get:Optional
@get:Input
- val skipValidateSpec = project.objects.property()
+ val skipValidateSpec = project.objects.property(Boolean::class.javaObjectType)
/**
* To generate alias (array, list, map) as model. When false, top-level objects defined as array, list, or map will result in those
@@ -566,21 +564,21 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val generateAliasAsModel = project.objects.property()
+ val generateAliasAsModel = project.objects.property(Boolean::class.javaObjectType)
/**
* A dynamic map of options specific to a generator.
*/
@get:Optional
@get:Input
- val configOptions = project.objects.mapProperty()
+ val configOptions = project.objects.mapProperty(String::class.java, String::class.java)
/**
* Templating engine: "mustache" (default) or "handlebars" (beta)
*/
@get:Optional
@get:Input
- val engine = project.objects.property()
+ val engine = project.objects.property(String::class.java)
/**
* Defines whether the output dir should be cleaned up before generating the output.
@@ -588,14 +586,14 @@ open class GenerateTask @Inject constructor(private val objectFactory: ObjectFac
*/
@get:Optional
@get:Input
- val cleanupOutput = project.objects.property()
+ val cleanupOutput = project.objects.property(Boolean::class.javaObjectType)
/**
* Defines whether the generator should run in dry-run mode.
*/
@get:Optional
@get:Input
- val dryRun = project.objects.property()
+ val dryRun = project.objects.property(Boolean::class.javaObjectType)
private fun Property.ifNotEmpty(block: Property.(T) -> Unit) {
if (isPresent) {
@@ -999,6 +997,6 @@ internal open class FileSystemManagerLegacy @Inject constructor(private val proj
internal open class FileSystemManagerDefault @Inject constructor(private val fs: FileSystemOperations) : FileSystemManager {
override fun delete(outputDir: Property) {
- fs.delete { delete(outputDir) }
+ fs.delete { it.delete(outputDir) }
}
}
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GeneratorsTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GeneratorsTask.kt
index d83d00b5b637..433d0a2489d1 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GeneratorsTask.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GeneratorsTask.kt
@@ -21,7 +21,6 @@ import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.TaskAction
import org.gradle.internal.logging.text.StyledTextOutput
import org.gradle.internal.logging.text.StyledTextOutputFactory
-import org.gradle.kotlin.dsl.listProperty
import org.gradle.work.DisableCachingByDefault
import org.openapitools.codegen.CodegenConfigLoader
import org.openapitools.codegen.CodegenType
@@ -43,7 +42,7 @@ open class GeneratorsTask : DefaultTask() {
* A list of stability indexes to include (value: all,beta,stable,experimental,deprecated). Excludes deprecated by default.
*/
@get:Internal
- val include = project.objects.listProperty()
+ val include = project.objects.listProperty(String::class.java)
@TaskAction
fun doWork() {
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/MetaTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/MetaTask.kt
index 8449cd75edbc..06beacc5b217 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/MetaTask.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/MetaTask.kt
@@ -25,7 +25,6 @@ import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import org.gradle.internal.logging.text.StyledTextOutput
import org.gradle.internal.logging.text.StyledTextOutputFactory
-import org.gradle.kotlin.dsl.property
import org.openapitools.codegen.CodegenConfig
import org.openapitools.codegen.CodegenConstants
import org.openapitools.codegen.SupportingFile
@@ -45,13 +44,13 @@ import java.nio.charset.Charset
@CacheableTask
open class MetaTask : DefaultTask() {
@get:Input
- val generatorName = project.objects.property()
+ val generatorName = project.objects.property(String::class.java)
@get:Input
- val packageName = project.objects.property()
+ val packageName = project.objects.property(String::class.java)
@get:OutputDirectory
- val outputFolder = project.objects.property()
+ val outputFolder = project.objects.property(String::class.java)
@TaskAction
fun doWork() {
diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/ValidateTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/ValidateTask.kt
index 4d2d13836541..30dd28f4318f 100644
--- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/ValidateTask.kt
+++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/ValidateTask.kt
@@ -32,7 +32,6 @@ import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.options.Option
import org.gradle.internal.logging.text.StyledTextOutput
import org.gradle.internal.logging.text.StyledTextOutputFactory
-import org.gradle.kotlin.dsl.property
import org.openapitools.codegen.validations.oas.OpenApiEvaluator
import org.openapitools.codegen.validations.oas.RuleConfiguration
@@ -56,15 +55,15 @@ import org.openapitools.codegen.validations.oas.RuleConfiguration
open class ValidateTask : DefaultTask() {
@get:InputFile
@get:PathSensitive(PathSensitivity.RELATIVE)
- val inputSpec = project.objects.property()
+ val inputSpec = project.objects.property(String::class.java)
@get:Optional
@get:Input
- val recommend = project.objects.property().convention(true)
+ val recommend = project.objects.property(Boolean::class.javaObjectType).convention(true)
@get:Optional
@get:Input
- val treatWarningsAsErrors = project.objects.property().convention(false)
+ val treatWarningsAsErrors = project.objects.property(Boolean::class.javaObjectType).convention(false)
@get:Internal
@set:Option(option = "input", description = "The input specification.")
diff --git a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskConfigurationCacheTest.kt b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskConfigurationCacheTest.kt
index b9ec75eb4293..7f5c8fea1cf8 100644
--- a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskConfigurationCacheTest.kt
+++ b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskConfigurationCacheTest.kt
@@ -20,7 +20,7 @@ class GenerateTaskConfigurationCacheTest : TestBase() {
}
@DataProvider(name = "gradle_version_provider")
- private fun gradleVersionProviderWithConfigurationCache(): Array> = arrayOf(arrayOf("8.7"), arrayOf("7.6.4"))
+ private fun gradleVersionProviderWithConfigurationCache(): Array> = arrayOf(arrayOf("8.14.4"), arrayOf("8.5"))
@DataProvider(name = "gradle_version_provider_without_cc")
private fun gradleVersionProviderWithoutConfigurationCache(): Array> = arrayOf(arrayOf("5.6.1"))
diff --git a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskFromCacheTest.kt b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskFromCacheTest.kt
index e66f6264578d..54ae76cb240f 100644
--- a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskFromCacheTest.kt
+++ b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskFromCacheTest.kt
@@ -22,7 +22,7 @@ class GenerateTaskFromCacheTest : TestBase() {
}
@DataProvider(name = "gradle_version_provider")
- private fun gradleVersionProvider(): Array> = arrayOf(arrayOf("8.7"), arrayOf("7.6.4"))
+ private fun gradleVersionProvider(): Array> = arrayOf(arrayOf("8.14.4"), arrayOf("8.5"))
// inputSpec tests
diff --git a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskUpToDateTest.kt b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskUpToDateTest.kt
index f8932c6bcc45..730d5ba4b690 100644
--- a/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskUpToDateTest.kt
+++ b/modules/openapi-generator-gradle-plugin/src/test/kotlin/GenerateTaskUpToDateTest.kt
@@ -9,7 +9,7 @@ import kotlin.test.assertEquals
class GenerateTaskUpToDateTest : TestBase() {
@DataProvider(name = "gradle_version_provider")
- private fun gradleVersionProvider(): Array> = arrayOf(arrayOf("8.7"), arrayOf("7.6.4"))
+ private fun gradleVersionProvider(): Array> = arrayOf(arrayOf("8.14.4"), arrayOf("8.5"))
// inputSpec tests
diff --git a/modules/openapi-generator-gradle-plugin/src/test/kotlin/ValidateTaskDslTest.kt b/modules/openapi-generator-gradle-plugin/src/test/kotlin/ValidateTaskDslTest.kt
index a7a5220d9975..ed4dd49b714d 100644
--- a/modules/openapi-generator-gradle-plugin/src/test/kotlin/ValidateTaskDslTest.kt
+++ b/modules/openapi-generator-gradle-plugin/src/test/kotlin/ValidateTaskDslTest.kt
@@ -17,8 +17,7 @@ class ValidateTaskDslTest : TestBase() {
@DataProvider(name = "gradle_version_provider")
fun gradleVersionProvider(): Array> = arrayOf(
arrayOf(null), // uses the version of Gradle used to build the plugin itself
- arrayOf("8.7"),
- arrayOf("7.6.4")
+ arrayOf("8.5")
)
private fun getGradleRunner(gradleVersion: String?): GradleRunner {