Skip to content

Commit

Permalink
chore(dependencies): Autobump korkVersion (#4745)
Browse files Browse the repository at this point in the history
* 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.<clinit>(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 <root@51dce6428a99>
Co-authored-by: j-sandy <[email protected]>
  • Loading branch information
3 people committed Jun 12, 2024
1 parent f936de5 commit aa0d702
Show file tree
Hide file tree
Showing 8 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion keiko-sql/keiko-sql.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion orca-integration/orca-integration.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down
2 changes: 1 addition & 1 deletion orca-queue-sql/orca-queue-sql.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}
2 changes: 1 addition & 1 deletion orca-sql-mysql/orca-sql-mysql.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
dependencies {
implementation(project(":orca-sql"))
runtimeOnly("mysql:mysql-connector-java")
runtimeOnly("com.mysql:mysql-connector-j")
}
2 changes: 1 addition & 1 deletion orca-sql/orca-sql.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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")
}
Expand Down

0 comments on commit aa0d702

Please sign in to comment.