From 3d032617a4d7ae8aec1ef8fd5b0b994410a1c8be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20M=C3=B6sl?= <christian.moesl@e-mundo.de>
Date: Fri, 10 Mar 2023 13:28:37 +0100
Subject: [PATCH] [java][webclient/resttemplate] fix dependencies for gradle
 with jakarta

---
 .../workflows/samples-java-client-jdk17.yaml  |  5 ++-
 .../resttemplate/build.gradle.mustache        | 28 +++++++++++--
 .../libraries/webclient/build.gradle.mustache | 40 +++++++++++++++----
 .../java/resttemplate-jakarta/build.gradle    | 18 ++++-----
 .../java/resttemplate-jakarta/gradlew         |  0
 .../java/resttemplate-swagger1/build.gradle   |  6 +--
 .../java/resttemplate-withXml/build.gradle    |  8 ++--
 .../petstore/java/resttemplate/build.gradle   |  8 ++--
 .../java/webclient-jakarta/build.gradle       | 27 ++++++-------
 .../petstore/java/webclient-jakarta/gradlew   |  0
 .../webclient-nullable-arrays/build.gradle    | 17 ++++----
 .../petstore/java/webclient/build.gradle      | 17 ++++----
 12 files changed, 105 insertions(+), 69 deletions(-)
 mode change 100644 => 100755 samples/client/petstore/java/resttemplate-jakarta/gradlew
 mode change 100644 => 100755 samples/client/petstore/java/webclient-jakarta/gradlew

diff --git a/.github/workflows/samples-java-client-jdk17.yaml b/.github/workflows/samples-java-client-jdk17.yaml
index cb439e97603..0e4bbf2c3ae 100644
--- a/.github/workflows/samples-java-client-jdk17.yaml
+++ b/.github/workflows/samples-java-client-jdk17.yaml
@@ -34,6 +34,9 @@ jobs:
           path: |
             ~/.m2
           key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
-      - name: Build
+      - name: Build with Maven
         working-directory: ${{ matrix.sample }}
         run: mvn clean package
+      - name: Build with Gradle
+        working-directory: ${{ matrix.sample }}
+        run: gradle clean build
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache
index 7ec8edd1fe9..2b586ef0c03 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache
@@ -32,8 +32,14 @@ if(hasProperty('target') && target == 'android') {
             targetSdkVersion 22
         }
         compileOptions {
+            {{#useJakartaEe}}
+            sourceCompatibility JavaVersion.VERSION_17
+            targetCompatibility JavaVersion.VERSION_17
+            {{/useJakartaEe}}
+            {{^useJakartaEe}}
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
+            {{/useJakartaEe}}
         }
 
         // Rename the aar correctly
@@ -66,7 +72,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -78,8 +84,14 @@ if(hasProperty('target') && target == 'android') {
     apply plugin: 'java'
     apply plugin: 'maven-publish'
 
+    {{#useJakartaEe}}
+    sourceCompatibility = JavaVersion.VERSION_17
+    targetCompatibility = JavaVersion.VERSION_17
+    {{/useJakartaEe}}
+    {{^useJakartaEe}}
     sourceCompatibility = JavaVersion.VERSION_1_8
     targetCompatibility = JavaVersion.VERSION_1_8
+    {{/useJakartaEe}}
 
     publishing {
         publications {
@@ -91,26 +103,36 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 }
 
 ext {
+    {{#swagger1AnnotationLibrary}}
     swagger_annotations_version = "1.6.9"
+    {{/swagger1AnnotationLibrary}}
     jackson_version = "2.14.1"
     jackson_databind_version = "2.14.1"
     {{#openApiNullable}}
     jackson_databind_nullable_version = "0.2.6"
     {{/openApiNullable}}
-    jakarta_annotation_version = "1.3.5"
+    {{#useJakartaEe}}
+    spring_web_version = "6.0.3"
+    jakarta_annotation_version = "2.1.1"
+    {{/useJakartaEe}}
+    {{^useJakartaEe}}
     spring_web_version = "5.3.24"
+    jakarta_annotation_version = "1.3.5"
+    {{/useJakartaEe}}
     jodatime_version = "2.9.9"
     junit_version = "4.13.2"
 }
 
 dependencies {
+    {{#swagger1AnnotationLibrary}}
     implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
+    {{/swagger1AnnotationLibrary}}
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "org.springframework:spring-web:$spring_web_version"
     implementation "org.springframework:spring-context:$spring_web_version"
diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache
index 0e21e620f24..0d29af88fb9 100644
--- a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache
+++ b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache
@@ -32,8 +32,14 @@ if(hasProperty('target') && target == 'android') {
         }
 
         compileOptions {
+            {{#useJakartaEe}}
+            sourceCompatibility JavaVersion.VERSION_17
+            targetCompatibility JavaVersion.VERSION_17
+            {{/useJakartaEe}}
+            {{^useJakartaEe}}
             sourceCompatibility JavaVersion.VERSION_1_8
             targetCompatibility JavaVersion.VERSION_1_8
+            {{/useJakartaEe}}
         }
 
         // Rename the aar correctly
@@ -66,7 +72,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -78,8 +84,14 @@ if(hasProperty('target') && target == 'android') {
     apply plugin: 'java'
     apply plugin: 'maven-publish'
 
+    {{#useJakartaEe}}
+    sourceCompatibility = JavaVersion.VERSION_17
+    targetCompatibility = JavaVersion.VERSION_17
+    {{/useJakartaEe}}
+    {{^useJakartaEe}}
     sourceCompatibility = JavaVersion.VERSION_1_8
     targetCompatibility = JavaVersion.VERSION_1_8
+    {{/useJakartaEe}}
 
     publishing {
         publications {
@@ -91,17 +103,17 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 
     task sourcesJar(type: Jar, dependsOn: classes) {
-        classifier = 'sources'
+        archiveClassifier = 'sources'
         from sourceSets.main.allSource
     }
 
     task javadocJar(type: Jar, dependsOn: javadoc) {
-        classifier = 'javadoc'
+        archiveClassifier = 'javadoc'
         from javadoc.destinationDir
     }
 
@@ -112,22 +124,36 @@ if(hasProperty('target') && target == 'android') {
 }
 
 ext {
+    {{#swagger1AnnotationLibrary}}
     swagger_annotations_version = "1.6.3"
+    {{/swagger1AnnotationLibrary}}
+    {{#useJakartaEe}}
+    spring_boot_version = "3.0.1"
+    jakarta_annotation_version = "2.1.1"
+    reactor_version = "3.5.1"
+    reactor_netty_version = "1.1.1"
+    {{/useJakartaEe}}
+    {{^useJakartaEe}}
     spring_boot_version = "2.6.6"
+    jakarta_annotation_version = "1.3.5"
+    reactor_version = "3.4.3"
+    reactor_netty_version = "1.0.4"
+    {{/useJakartaEe}}
     jackson_version = "2.13.4"
     jackson_databind_version = "2.13.4.2"
     {{#openApiNullable}}
     jackson_databind_nullable_version = "0.2.6"
     {{/openApiNullable}}
-    jakarta_annotation_version = "1.3.5"
-    reactor_version = "3.4.3"
-    reactor_netty_version = "1.0.4"
+    {{#joda}}
     jodatime_version = "2.9.9"
+    {{/joda}}
     junit_version = "4.13.2"
 }
 
 dependencies {
+    {{#swagger1AnnotationLibrary}}
     implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
+    {{/swagger1AnnotationLibrary}}
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "io.projectreactor:reactor-core:$reactor_version"
     implementation "org.springframework.boot:spring-boot-starter-webflux:$spring_boot_version"
diff --git a/samples/client/petstore/java/resttemplate-jakarta/build.gradle b/samples/client/petstore/java/resttemplate-jakarta/build.gradle
index 46db68d6e80..04779860a1e 100644
--- a/samples/client/petstore/java/resttemplate-jakarta/build.gradle
+++ b/samples/client/petstore/java/resttemplate-jakarta/build.gradle
@@ -32,8 +32,8 @@ if(hasProperty('target') && target == 'android') {
             targetSdkVersion 22
         }
         compileOptions {
-            sourceCompatibility JavaVersion.VERSION_1_8
-            targetCompatibility JavaVersion.VERSION_1_8
+            sourceCompatibility JavaVersion.VERSION_17
+            targetCompatibility JavaVersion.VERSION_17
         }
 
         // Rename the aar correctly
@@ -66,7 +66,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -78,8 +78,8 @@ if(hasProperty('target') && target == 'android') {
     apply plugin: 'java'
     apply plugin: 'maven-publish'
 
-    sourceCompatibility = JavaVersion.VERSION_1_8
-    targetCompatibility = JavaVersion.VERSION_1_8
+    sourceCompatibility = JavaVersion.VERSION_17
+    targetCompatibility = JavaVersion.VERSION_17
 
     publishing {
         publications {
@@ -91,24 +91,22 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 }
 
 ext {
-    swagger_annotations_version = "1.6.9"
     jackson_version = "2.14.1"
     jackson_databind_version = "2.14.1"
     jackson_databind_nullable_version = "0.2.6"
-    jakarta_annotation_version = "1.3.5"
-    spring_web_version = "5.3.24"
+    spring_web_version = "6.0.3"
+    jakarta_annotation_version = "2.1.1"
     jodatime_version = "2.9.9"
     junit_version = "4.13.2"
 }
 
 dependencies {
-    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "org.springframework:spring-web:$spring_web_version"
     implementation "org.springframework:spring-context:$spring_web_version"
diff --git a/samples/client/petstore/java/resttemplate-jakarta/gradlew b/samples/client/petstore/java/resttemplate-jakarta/gradlew
old mode 100644
new mode 100755
diff --git a/samples/client/petstore/java/resttemplate-swagger1/build.gradle b/samples/client/petstore/java/resttemplate-swagger1/build.gradle
index 46db68d6e80..96b3d8f412e 100644
--- a/samples/client/petstore/java/resttemplate-swagger1/build.gradle
+++ b/samples/client/petstore/java/resttemplate-swagger1/build.gradle
@@ -66,7 +66,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -91,7 +91,7 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 }
@@ -101,8 +101,8 @@ ext {
     jackson_version = "2.14.1"
     jackson_databind_version = "2.14.1"
     jackson_databind_nullable_version = "0.2.6"
-    jakarta_annotation_version = "1.3.5"
     spring_web_version = "5.3.24"
+    jakarta_annotation_version = "1.3.5"
     jodatime_version = "2.9.9"
     junit_version = "4.13.2"
 }
diff --git a/samples/client/petstore/java/resttemplate-withXml/build.gradle b/samples/client/petstore/java/resttemplate-withXml/build.gradle
index 6882fdc04a2..52ead24bbae 100644
--- a/samples/client/petstore/java/resttemplate-withXml/build.gradle
+++ b/samples/client/petstore/java/resttemplate-withXml/build.gradle
@@ -66,7 +66,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -91,24 +91,22 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 }
 
 ext {
-    swagger_annotations_version = "1.6.9"
     jackson_version = "2.14.1"
     jackson_databind_version = "2.14.1"
     jackson_databind_nullable_version = "0.2.6"
-    jakarta_annotation_version = "1.3.5"
     spring_web_version = "5.3.24"
+    jakarta_annotation_version = "1.3.5"
     jodatime_version = "2.9.9"
     junit_version = "4.13.2"
 }
 
 dependencies {
-    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "org.springframework:spring-web:$spring_web_version"
     implementation "org.springframework:spring-context:$spring_web_version"
diff --git a/samples/client/petstore/java/resttemplate/build.gradle b/samples/client/petstore/java/resttemplate/build.gradle
index 46db68d6e80..c97d101a7c4 100644
--- a/samples/client/petstore/java/resttemplate/build.gradle
+++ b/samples/client/petstore/java/resttemplate/build.gradle
@@ -66,7 +66,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -91,24 +91,22 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 }
 
 ext {
-    swagger_annotations_version = "1.6.9"
     jackson_version = "2.14.1"
     jackson_databind_version = "2.14.1"
     jackson_databind_nullable_version = "0.2.6"
-    jakarta_annotation_version = "1.3.5"
     spring_web_version = "5.3.24"
+    jakarta_annotation_version = "1.3.5"
     jodatime_version = "2.9.9"
     junit_version = "4.13.2"
 }
 
 dependencies {
-    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "org.springframework:spring-web:$spring_web_version"
     implementation "org.springframework:spring-context:$spring_web_version"
diff --git a/samples/client/petstore/java/webclient-jakarta/build.gradle b/samples/client/petstore/java/webclient-jakarta/build.gradle
index 43c4dcb03aa..fe5ded3028d 100644
--- a/samples/client/petstore/java/webclient-jakarta/build.gradle
+++ b/samples/client/petstore/java/webclient-jakarta/build.gradle
@@ -32,8 +32,8 @@ if(hasProperty('target') && target == 'android') {
         }
 
         compileOptions {
-            sourceCompatibility JavaVersion.VERSION_1_8
-            targetCompatibility JavaVersion.VERSION_1_8
+            sourceCompatibility JavaVersion.VERSION_17
+            targetCompatibility JavaVersion.VERSION_17
         }
 
         // Rename the aar correctly
@@ -66,7 +66,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -78,8 +78,8 @@ if(hasProperty('target') && target == 'android') {
     apply plugin: 'java'
     apply plugin: 'maven-publish'
 
-    sourceCompatibility = JavaVersion.VERSION_1_8
-    targetCompatibility = JavaVersion.VERSION_1_8
+    sourceCompatibility = JavaVersion.VERSION_17
+    targetCompatibility = JavaVersion.VERSION_17
 
     publishing {
         publications {
@@ -91,17 +91,17 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 
     task sourcesJar(type: Jar, dependsOn: classes) {
-        classifier = 'sources'
+        archiveClassifier = 'sources'
         from sourceSets.main.allSource
     }
 
     task javadocJar(type: Jar, dependsOn: javadoc) {
-        classifier = 'javadoc'
+        archiveClassifier = 'javadoc'
         from javadoc.destinationDir
     }
 
@@ -112,20 +112,17 @@ if(hasProperty('target') && target == 'android') {
 }
 
 ext {
-    swagger_annotations_version = "1.6.3"
-    spring_boot_version = "2.6.6"
+    spring_boot_version = "3.0.1"
+    jakarta_annotation_version = "2.1.1"
+    reactor_version = "3.5.1"
+    reactor_netty_version = "1.1.1"
     jackson_version = "2.13.4"
     jackson_databind_version = "2.13.4.2"
     jackson_databind_nullable_version = "0.2.6"
-    jakarta_annotation_version = "1.3.5"
-    reactor_version = "3.4.3"
-    reactor_netty_version = "1.0.4"
-    jodatime_version = "2.9.9"
     junit_version = "4.13.2"
 }
 
 dependencies {
-    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "io.projectreactor:reactor-core:$reactor_version"
     implementation "org.springframework.boot:spring-boot-starter-webflux:$spring_boot_version"
diff --git a/samples/client/petstore/java/webclient-jakarta/gradlew b/samples/client/petstore/java/webclient-jakarta/gradlew
old mode 100644
new mode 100755
diff --git a/samples/client/petstore/java/webclient-nullable-arrays/build.gradle b/samples/client/petstore/java/webclient-nullable-arrays/build.gradle
index 1b9e9ec6eeb..c3d61a33bed 100644
--- a/samples/client/petstore/java/webclient-nullable-arrays/build.gradle
+++ b/samples/client/petstore/java/webclient-nullable-arrays/build.gradle
@@ -66,7 +66,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -91,17 +91,17 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 
     task sourcesJar(type: Jar, dependsOn: classes) {
-        classifier = 'sources'
+        archiveClassifier = 'sources'
         from sourceSets.main.allSource
     }
 
     task javadocJar(type: Jar, dependsOn: javadoc) {
-        classifier = 'javadoc'
+        archiveClassifier = 'javadoc'
         from javadoc.destinationDir
     }
 
@@ -112,20 +112,17 @@ if(hasProperty('target') && target == 'android') {
 }
 
 ext {
-    swagger_annotations_version = "1.6.3"
     spring_boot_version = "2.6.6"
-    jackson_version = "2.13.4"
-    jackson_databind_version = "2.13.4.2"
-    jackson_databind_nullable_version = "0.2.6"
     jakarta_annotation_version = "1.3.5"
     reactor_version = "3.4.3"
     reactor_netty_version = "1.0.4"
-    jodatime_version = "2.9.9"
+    jackson_version = "2.13.4"
+    jackson_databind_version = "2.13.4.2"
+    jackson_databind_nullable_version = "0.2.6"
     junit_version = "4.13.2"
 }
 
 dependencies {
-    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "io.projectreactor:reactor-core:$reactor_version"
     implementation "org.springframework.boot:spring-boot-starter-webflux:$spring_boot_version"
diff --git a/samples/client/petstore/java/webclient/build.gradle b/samples/client/petstore/java/webclient/build.gradle
index 43c4dcb03aa..254584ee323 100644
--- a/samples/client/petstore/java/webclient/build.gradle
+++ b/samples/client/petstore/java/webclient/build.gradle
@@ -66,7 +66,7 @@ if(hasProperty('target') && target == 'android') {
 
     task sourcesJar(type: Jar) {
         from android.sourceSets.main.java.srcDirs
-        classifier = 'sources'
+        archiveClassifier = 'sources'
     }
 
     artifacts {
@@ -91,17 +91,17 @@ if(hasProperty('target') && target == 'android') {
     }
 
     task execute(type:JavaExec) {
-       main = System.getProperty('mainClass')
+       mainClass = System.getProperty('mainClass')
        classpath = sourceSets.main.runtimeClasspath
     }
 
     task sourcesJar(type: Jar, dependsOn: classes) {
-        classifier = 'sources'
+        archiveClassifier = 'sources'
         from sourceSets.main.allSource
     }
 
     task javadocJar(type: Jar, dependsOn: javadoc) {
-        classifier = 'javadoc'
+        archiveClassifier = 'javadoc'
         from javadoc.destinationDir
     }
 
@@ -112,20 +112,17 @@ if(hasProperty('target') && target == 'android') {
 }
 
 ext {
-    swagger_annotations_version = "1.6.3"
     spring_boot_version = "2.6.6"
-    jackson_version = "2.13.4"
-    jackson_databind_version = "2.13.4.2"
-    jackson_databind_nullable_version = "0.2.6"
     jakarta_annotation_version = "1.3.5"
     reactor_version = "3.4.3"
     reactor_netty_version = "1.0.4"
-    jodatime_version = "2.9.9"
+    jackson_version = "2.13.4"
+    jackson_databind_version = "2.13.4.2"
+    jackson_databind_nullable_version = "0.2.6"
     junit_version = "4.13.2"
 }
 
 dependencies {
-    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
     implementation "com.google.code.findbugs:jsr305:3.0.2"
     implementation "io.projectreactor:reactor-core:$reactor_version"
     implementation "org.springframework.boot:spring-boot-starter-webflux:$spring_boot_version"
-- 
GitLab