This commit upgrades to Kotlin 2.1.0. Two related dependencies have been
updated as well: Kotlin Coroutines to 1.10, and Kotlin Serialization to
1.8.
As of Kotlin 2, it is no longer possible to have a Java type and a
Kotlin type with the same name. As our code samples follow that
unfortunate pattern, this commit makes sure that the Kotlin sample code
does not depend on any of the Java counterpart and configure the kotlin
compilation plugin to ignore Java sources.
The minimum version of Gradle is 7.6.4. It bundles a version of Kotlin
that cannot compile a Kotlin build script when spring-core, compiled
with Kotlin 2.1, is on the classpath. Using Gradle 8.12 to run the DSL
tests avoids the problem.
Closes gh-45486
Co-authored-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
Previously, managed dependencies were documented using Gradle's
dependency constraints. This has proven to be non-deterministic for
reasons that are not fully understood. The working theory is that
the constraints that are documented vary depending on the tasks
that the build has run at the point at which the constraints are
being examined and documented.
This commit replaces approach with one that builds a model of a
resolved bom by examining the configured bom extension and the
XML of the Maven boms that it imports. This model is written to
disk from where it can then be consumed as a dependency on other
projects. The existing tasks for documenting the constrained
versions and version properties have been rewritten to use the
resolved bom model instead.
Closes gh-44855
This commit updates the doc build process to link to the latest doc for
a given generation, rather than a specific version. This applies to both
the reference guide and the aggregated Javadoc.
Closes gh-42196
Gradle doesn't support excluding a dependency that's declared with a
classifier. Instead, this commit replaces the test-qualified
kafka-server-common dependency with the plain dependency. The plain
dependency was already present so this is equivalent to excluding
the test-qualified dependency.
Closes gh-41446