Skip to content

Commit

Permalink
chore(dependency): add explicit byte-buddy dependency while upgrading…
Browse files Browse the repository at this point in the history
… spockframework to 2.2-groovy-3.0 (#4771)

While upgrading spockframework from 2.0-groovy-3.0 to 2.2-groovy-3.0, encountered similar errors as mentioned below during test execution of orca-mine, orca-pipelinetemplate, orca-applications, orca-echo, orca-clouddriver-provider-titus, orca-front50, orca-igor, orca-peering, orca-interlink and orca-webhook module:

```
Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @5f9b2141
        at app//net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:464)
        at app//net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:339)
        at app//net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:96)
        at app//net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:94)
        at app//net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
        at java.base@17.0.2/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at app//net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
        at app//net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
        at app//net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:119)
        at app//net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:294)
        at app//net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221)
        at app//net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174)
        at app//net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153)
        at app//net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73)
        ... 10 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @5f9b2141
        at net.sf.cglib.core.ReflectUtils$1.run(ReflectUtils.java:61)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at net.sf.cglib.core.ReflectUtils.<clinit>(ReflectUtils.java:52)
        at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:243)
        at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
        at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:332)
        ... 22 more
```
This issue caused due to dropping of `net.bytebuddy:byte-buddy` transitive dependency from [spock 2.2](https://repo1.maven.org/maven2/org/spockframework/spock-core/2.2-groovy-3.0/spock-core-2.2-groovy-3.0.pom), while it is part of [spock 2.0](https://repo1.maven.org/maven2/org/spockframework/spock-core/2.0-groovy-3.0/spock-core-2.0-groovy-3.0.pom).
So, introducing the `testRuntimeOnly` byte-buddy explicit dependency to fix this issue.
Since spring boot 2.7.18 bring byte-buddy as transitive dependency with [1.12.23](https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.7.18/spring-boot-dependencies-2.7.18.pom) version, so tying the byte-buddy version with spring boot by unpinning it.
  • Loading branch information
j-sandy authored Aug 6, 2024
1 parent 3db7078 commit c5c5b8c
Show file tree
Hide file tree
Showing 10 changed files with 10 additions and 0 deletions.
1 change: 1 addition & 0 deletions orca-applications/orca-applications.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ dependencies {
annotationProcessor("org.projectlombok:lombok")

testImplementation(project(":orca-test-groovy"))
testRuntimeOnly("net.bytebuddy:byte-buddy")
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,5 @@ dependencies {
testImplementation(project(":orca-test-groovy"))

testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly("net.bytebuddy:byte-buddy")
}
1 change: 1 addition & 0 deletions orca-echo/orca-echo.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ dependencies {
implementation("io.spinnaker.kork:kork-retrofit")

testImplementation("com.squareup.retrofit:retrofit-mock")
testRuntimeOnly("net.bytebuddy:byte-buddy")
}

tasks.withType(Javadoc) {
Expand Down
1 change: 1 addition & 0 deletions orca-front50/orca-front50.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ dependencies {
testImplementation(project(":orca-test-groovy"))
testImplementation(project(":orca-pipelinetemplate"))
testImplementation("com.github.ben-manes.caffeine:guava")
testRuntimeOnly("net.bytebuddy:byte-buddy")
}

sourceSets {
Expand Down
1 change: 1 addition & 0 deletions orca-igor/orca-igor.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ dependencies {
testImplementation("org.springframework:spring-test")
testImplementation("io.spinnaker.fiat:fiat-core:$fiatVersion")
testImplementation("com.github.tomakehurst:wiremock-jre8-standalone")
testRuntimeOnly("net.bytebuddy:byte-buddy")
}

sourceSets {
Expand Down
1 change: 1 addition & 0 deletions orca-interlink/orca-interlink.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,5 @@ dependencies {
compileOnly("org.projectlombok:lombok")
annotationProcessor("org.projectlombok:lombok")
testImplementation(project(":orca-test"))
testRuntimeOnly("net.bytebuddy:byte-buddy")
}
1 change: 1 addition & 0 deletions orca-mine/orca-mine.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ dependencies {
testImplementation("org.junit.jupiter:junit-jupiter-params")
testImplementation("org.assertj:assertj-core")
testImplementation("com.github.tomakehurst:wiremock-jre8-standalone")
testRuntimeOnly("net.bytebuddy:byte-buddy")
}

sourceSets {
Expand Down
1 change: 1 addition & 0 deletions orca-peering/orca-peering.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@ dependencies {
implementation("org.springframework.boot:spring-boot-autoconfigure")

testImplementation(project(":orca-test-groovy"))
testRuntimeOnly("net.bytebuddy:byte-buddy")
}
1 change: 1 addition & 0 deletions orca-pipelinetemplate/orca-pipelinetemplate.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ dependencies {
testImplementation("org.codehaus.groovy:groovy-json")
testImplementation("io.spinnaker.fiat:fiat-core:$fiatVersion")
testImplementation("io.spinnaker.kork:kork-retrofit")
testRuntimeOnly("net.bytebuddy:byte-buddy")
}
1 change: 1 addition & 0 deletions orca-webhook/orca-webhook.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ dependencies {
implementation("com.jakewharton.retrofit:retrofit1-okhttp3-client:1.1.0")
testImplementation("org.springframework:spring-test")
testImplementation("org.codehaus.groovy:groovy-json")
testRuntimeOnly("net.bytebuddy:byte-buddy")

implementation("io.spinnaker.fiat:fiat-api:$fiatVersion")
implementation("io.spinnaker.fiat:fiat-core:$fiatVersion")
Expand Down

0 comments on commit c5c5b8c

Please sign in to comment.