Improve TestCompiler and allow lookup based class defines

Update the `TestCompiler` so that classes can be defined using
a `Lookup`. This update allows package-private classes to be
accessed without needing a quite so unusual classloader setup.

The `@CompileWithTargetClassAccess` should be added to any
test that needs to use `Lookup` based defines. The test will
run with a completed forked classloader so not to pollute the
main classloader.

This commit also adds some useful additional APIs.

See gh-28120
This commit is contained in:
Phillip Webb
2022-04-13 16:48:13 -07:00
parent b3efdf3c2b
commit 4b82546b97
18 changed files with 622 additions and 60 deletions

View File

@@ -4,6 +4,9 @@ dependencies {
api(project(":spring-core"))
api("org.assertj:assertj-core")
api("com.thoughtworks.qdox:qdox")
compileOnly("org.junit.jupiter:junit-jupiter")
compileOnly("org.junit.platform:junit-platform-engine")
compileOnly("org.junit.platform:junit-platform-launcher")
}
tasks.withType(PublishToMavenRepository).configureEach {