From aa0d702a8675af7cc80b27f01d8e5e8c50c5337b Mon Sep 17 00:00:00 2001 From: spinnakerbot Date: Wed, 12 Jun 2024 04:13:09 -0400 Subject: [PATCH] chore(dependencies): Autobump korkVersion (#4745) * chore(dependencies): Autobump korkVersion * refactor(mysql): update mysql connector coordinate during upgrade to spring boot 2.7.x In spring boot 2.7.8 onwards mysql connector coordinate `mysql:mysql-connector-java` has been removed and only `com.mysql:mysql-connector-j` coordinate exist. https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#mysql-jdbc-driver So, updating the mysql connector coordinate as `com.mysql:mysql-connector-j` with spring boot upgrade to 2.7.18. https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.7.18/spring-boot-dependencies-2.7.18.pom * refactor(clouddriver): replace getType() with StageDefinitionBuilder.getType() during upgrade to spring boot 2.7.x While upgrading spring boot 2.7.18, encounter below error during test compilation of orca-clouddriver module: ``` Caused by: groovy.lang.MissingMethodException: No signature of method: static com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.PinServerGroupStage.getType() is applicable for argument types: (Class) values: [class com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.PinServerGroupStage] Possible solutions: asType(java.lang.Class), getName(), grep(), getAt(java.lang.String) at app//groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1570) at app//groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1556) at app//org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.callStatic(StaticMetaClassSite.java:62) at app//org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55) at app//org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217) at app//org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:231) at app//com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.PinServerGroupStage.(PinServerGroupStage.groovy:41) ... 227 more ``` Spring boot 2.7.18 brings groovy 3.0.19 as transitive dependency. The root cause of the issue is a breaking change introduced from groovy 3.0.18 onwards, that allows a Java class to inherit static methods from its interface. To fix this issue replacing getType() with StageDefinitionBuilder.getType(). http://groovy-lang.org/changelogs/changelog-3.0.18.html https://issues.apache.org/jira/browse/GROOVY-8164 Before: ``` $ ./gradlew orca-clouddriver:dI --dependency org.codehaus.groovy --configuration testCompileClasspath > Task :orca-clouddriver:dependencyInsight org.codehaus.groovy:groovy:3.0.17 Variant compile: | Attribute Name | Provided | Requested | |------------------------------------|----------|-------------------| | org.gradle.status | release | | | org.gradle.category | library | library | | org.gradle.libraryelements | jar | classes+resources | | org.gradle.usage | java-api | java-api | | org.gradle.dependency.bundling | | external | | org.gradle.jvm.environment | | standard-jvm | | org.gradle.jvm.version | | 11 | | org.jetbrains.kotlin.platform.type | | jvm | Selection reasons: - By constraint - Forced org.codehaus.groovy:groovy:3.0.17 +--- io.spinnaker.kork:kork-bom:7.227.0 | \--- testCompileClasspath \--- io.spinnaker.kork:kork-web:7.227.0 +--- testCompileClasspath (requested io.spinnaker.kork:kork-web) +--- io.spinnaker.kork:kork-bom:7.227.0 (*) +--- project :orca-retrofit (requested io.spinnaker.kork:kork-web) | \--- testCompileClasspath \--- project :orca-bakery (requested io.spinnaker.kork:kork-web) \--- testCompileClasspath org.codehaus.groovy:groovy -> 3.0.17 +--- testCompileClasspath +--- project :orca-front50 | \--- testCompileClasspath \--- project :orca-retrofit \--- testCompileClasspath org.codehaus.groovy:groovy:3.0.8 -> 3.0.17 \--- org.spockframework:spock-core:2.0-groovy-3.0 +--- testCompileClasspath (requested org.spockframework:spock-core) \--- io.spinnaker.kork:kork-bom:7.227.0 \--- testCompileClasspath ``` After: ``` $ ./gradlew orca-clouddriver:dI --dependency org.codehaus.groovy --configuration testCompileClasspath > Task :orca-clouddriver:dependencyInsight org.codehaus.groovy:groovy:3.0.19 Variant compile: | Attribute Name | Provided | Requested | |------------------------------------|----------|-------------------| | org.gradle.status | release | | | org.gradle.category | library | library | | org.gradle.libraryelements | jar | classes+resources | | org.gradle.usage | java-api | java-api | | org.gradle.dependency.bundling | | external | | org.gradle.jvm.environment | | standard-jvm | | org.gradle.jvm.version | | 11 | | org.jetbrains.kotlin.platform.type | | jvm | Selection reasons: - By constraint - Forced org.codehaus.groovy:groovy:3.0.19 +--- io.spinnaker.kork:kork-bom:sb2718-SNAPSHOT | \--- testCompileClasspath \--- io.spinnaker.kork:kork-web:sb2718-SNAPSHOT +--- testCompileClasspath (requested io.spinnaker.kork:kork-web) +--- io.spinnaker.kork:kork-bom:sb2718-SNAPSHOT (*) +--- project :orca-retrofit (requested io.spinnaker.kork:kork-web) | \--- testCompileClasspath \--- project :orca-bakery (requested io.spinnaker.kork:kork-web) \--- testCompileClasspath org.codehaus.groovy:groovy -> 3.0.19 +--- testCompileClasspath +--- project :orca-front50 | \--- testCompileClasspath \--- project :orca-retrofit \--- testCompileClasspath org.codehaus.groovy:groovy:3.0.8 -> 3.0.19 \--- org.spockframework:spock-core:2.0-groovy-3.0 +--- testCompileClasspath (requested org.spockframework:spock-core) \--- io.spinnaker.kork:kork-bom:sb2718-SNAPSHOT \--- testCompileClasspath ``` --------- Co-authored-by: root Co-authored-by: j-sandy <30489233+j-sandy@users.noreply.github.com> --- gradle.properties | 2 +- keiko-sql/keiko-sql.gradle | 2 +- .../pipeline/servergroup/PinServerGroupStage.groovy | 3 ++- .../pipeline/servergroup/ResizeServerGroupStage.groovy | 3 ++- orca-integration/orca-integration.gradle | 2 +- orca-queue-sql/orca-queue-sql.gradle | 2 +- orca-sql-mysql/orca-sql-mysql.gradle | 2 +- orca-sql/orca-sql.gradle | 2 +- 8 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gradle.properties b/gradle.properties index c92f652972..a316c4fd0c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ fiatVersion=1.47.0 -korkVersion=7.229.0 +korkVersion=7.230.0 kotlinVersion=1.6.21 org.gradle.parallel=true org.gradle.jvmargs=-Xmx6g diff --git a/keiko-sql/keiko-sql.gradle b/keiko-sql/keiko-sql.gradle index f216a68952..1be7b119b1 100644 --- a/keiko-sql/keiko-sql.gradle +++ b/keiko-sql/keiko-sql.gradle @@ -19,5 +19,5 @@ dependencies { testImplementation project(":keiko-tck") testImplementation "io.spinnaker.kork:kork-sql-test" testImplementation "org.testcontainers:mysql" - testImplementation "mysql:mysql-connector-java" + testImplementation "com.mysql:mysql-connector-j" } diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/PinServerGroupStage.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/PinServerGroupStage.groovy index 1353190a70..44a3bdec63 100644 --- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/PinServerGroupStage.groovy +++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/PinServerGroupStage.groovy @@ -16,6 +16,7 @@ package com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup +import com.netflix.spinnaker.orca.api.pipeline.graph.StageDefinitionBuilder import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupLinearStageSupport import com.netflix.spinnaker.orca.clouddriver.tasks.MonitorKatoTask @@ -38,7 +39,7 @@ import org.springframework.stereotype.Component @Component @Slf4j class PinServerGroupStage extends TargetServerGroupLinearStageSupport { - public static final String TYPE = getType(PinServerGroupStage) + public static final String TYPE = StageDefinitionBuilder.getType(PinServerGroupStage) @Override protected void taskGraphInternal(StageExecution stage, TaskNode.Builder builder) { diff --git a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/ResizeServerGroupStage.groovy b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/ResizeServerGroupStage.groovy index b0850a7401..d1e43b4460 100644 --- a/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/ResizeServerGroupStage.groovy +++ b/orca-clouddriver/src/main/groovy/com/netflix/spinnaker/orca/clouddriver/pipeline/servergroup/ResizeServerGroupStage.groovy @@ -16,6 +16,7 @@ package com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup +import com.netflix.spinnaker.orca.api.pipeline.graph.StageDefinitionBuilder import com.netflix.spinnaker.orca.api.pipeline.models.StageExecution import com.netflix.spinnaker.orca.clouddriver.pipeline.providers.aws.ModifyAwsScalingProcessStage import com.netflix.spinnaker.orca.clouddriver.pipeline.servergroup.support.TargetServerGroupLinearStageSupport @@ -37,7 +38,7 @@ import org.springframework.stereotype.Component @Component @Slf4j class ResizeServerGroupStage extends TargetServerGroupLinearStageSupport { - public static final String TYPE = getType(ResizeServerGroupStage) + public static final String TYPE = StageDefinitionBuilder.getType(ResizeServerGroupStage) @Override protected void taskGraphInternal(StageExecution stage, TaskNode.Builder builder) { diff --git a/orca-integration/orca-integration.gradle b/orca-integration/orca-integration.gradle index 132d5d3882..fc8cd1f8db 100644 --- a/orca-integration/orca-integration.gradle +++ b/orca-integration/orca-integration.gradle @@ -8,7 +8,7 @@ dependencies { testImplementation "org.testcontainers:testcontainers" testImplementation "org.testcontainers:junit-jupiter" testRuntimeOnly "ch.qos.logback:logback-classic" - testRuntimeOnly "mysql:mysql-connector-java" + testRuntimeOnly "com.mysql:mysql-connector-j" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" testRuntimeOnly "org.postgresql:postgresql" diff --git a/orca-queue-sql/orca-queue-sql.gradle b/orca-queue-sql/orca-queue-sql.gradle index 63783b9005..af5bcdc646 100644 --- a/orca-queue-sql/orca-queue-sql.gradle +++ b/orca-queue-sql/orca-queue-sql.gradle @@ -25,5 +25,5 @@ dependencies { testImplementation("org.springframework:spring-test") testImplementation("org.springframework.boot:spring-boot-test") - testRuntimeOnly("mysql:mysql-connector-java") + testRuntimeOnly("com.mysql:mysql-connector-j") } diff --git a/orca-sql-mysql/orca-sql-mysql.gradle b/orca-sql-mysql/orca-sql-mysql.gradle index 959d633ddb..43eee689ec 100644 --- a/orca-sql-mysql/orca-sql-mysql.gradle +++ b/orca-sql-mysql/orca-sql-mysql.gradle @@ -1,4 +1,4 @@ dependencies { implementation(project(":orca-sql")) - runtimeOnly("mysql:mysql-connector-java") + runtimeOnly("com.mysql:mysql-connector-j") } diff --git a/orca-sql/orca-sql.gradle b/orca-sql/orca-sql.gradle index 016028fdbe..68dbde4229 100644 --- a/orca-sql/orca-sql.gradle +++ b/orca-sql/orca-sql.gradle @@ -52,7 +52,7 @@ dependencies { testImplementation("org.testcontainers:mysql") testImplementation("org.testcontainers:postgresql") - testRuntimeOnly("mysql:mysql-connector-java") + testRuntimeOnly("com.mysql:mysql-connector-j") testRuntimeOnly("org.postgresql:postgresql") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") }