-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Process property upgrades in each subproject separately #25990
Comments
I found one issue with annotation processor: currently we do full recompilation of Groovy tests, see: So we need to fix that. |
…erceptor from plugins classloader via SPI And add Property upgrades instrumentation to plugins classpath. That way we don't have classloading issues in adapter logic, where we reference plugin types. Main changes: 1. With annotation processor we now generate also `META-INF/services/org.gradle.internal.classpath.intercept.CallInterceptor` and `META-INF/services/org.gradle.internal.instrumentation.api.jvmbytecode.JvmBytecodeCallInterceptor$Factory`. 2. In `DefaultClassLoaderRegistry` we load interceptors from plugins class loader as: `CallInterceptorRegistry.loadCallInterceptors(pluginsClassLoader);` 3. `instrumentation-declarations` are now a `pluginsRuntimeOnly` dependency of `:distribution-core` and not anymore a `runtimeOnly` dependency of `:launcher` Fixes #25893 Fixes #25894 This change will also make it simpler to implement #25990. ### Reviewing cheatsheet Before merging the PR, comments starting with - ❌ ❓**must** be fixed - 🤔 💅 **should** be fixed - 💭 **may** be fixed - 🎉 celebrate happy things Co-authored-by: Anže Sodja <asodja@gradle.com>
It seems issue #26085 is specific just for For such projects we can probably keep For reference, it seems we disabled incremental annotation processing for Groovy/Java joint compilation in #9871, because there were too many corner cases and supporting it was expensive. |
We should have an annotation processor execute on each subproject individually to process
@UpgradedProperty
definitions. This is to avoid the need for introducing dependencies from theinstrumentation-declarations
subproject.cc: @gradle/bt-execution
The text was updated successfully, but these errors were encountered: