Remove spring-boot-json-test module and spread code between
`spring-boot-test`, `spring-boot-test-autoconfigure` and JSON
technology modules.
See gh-46356
See gh-47322
This commit modularizes spring-boot-test-autoconfigure. It now
contains only the code that's central to test auto-configuration.
Feature-specific functionality has moved out into -test modules,
some existing and some newly created. For example, `@DataJpaTest` can
now be found in spring-boot-data-jpa-test.
Closes gh-47322
This commit adds a spring-boot-persistence module with data technology
independent features. This provides a better home for EntityScan and
PersistenceExceptionTranslationAutoConfiguration.
Closes gh-45328
This commit ensures that before walking a source root, the Gradle plugin
checks that it exists. This situation can only happen when a Gradle
plugin adds new roots to SourceSets, but there are no sources in them.
Fixes gh-47142
Without this change, removing a file from the task's inputs would not
be reflected in its output as the stale output file for that input
would remain.
Closes gh-46970
Prior to this commit, it wasn't possible to write a test to verify that
a specific ArchRule applied only to a specific SourceSet.
This PR rewrites `ArchitectureCheckTests` to support different sources
and also adds functionality to configure the plugin.
With these changes, all tests now verify not only the
`checkArchitectureMain` task but also `checkArchitectureTest`.
See gh-46822
Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
Projects which don't have JSpecify nullability annotations can opt out
by using
architectureCheck {
nullMarked = false
}
in their build.gradle script.
See gh-46587
Library-specific upgrade policies were added to allow a dependency
to have a less strict upgrade policy, for example so that a new
minor upgrade could be applied in a maintenance release. As
currently implemented, a library-specific policy that's more
restrictive than the bom's policy may result in a possibl upgrade
being missed.
This commit updates the library-specific support to use the
maximum (most permissive) upgrade policy so that possible upgrades
are not hidden by a less permissive library-specific policy.
See gh-46369
As of this new major, all milestones should be shipped to central as
well. This commit removes the inclusion of the milestone repository as
this shouldn't be needed anymore.
Closes gh-46420
Update `EclipseConventions` so that classpath `whenMerged` changes
are applied via `JavaBasePlugin`. Without this change, the `whenMerged`
item is added, but then`EclipsePlugin.configureEclipseClasspath` is
called from a `project.getPlugins().withType(JavaBasePlugin.class, ...`
call. Using a nested call appears to fix the issue, probably because
it now runs after `configureEclipseClasspath`.
Closes gh-46319
This commit leverages Kotlin 2.2 which is expected to be the
new baseline for Spring Boot 4.0, so API and language
versions are upgraded to KOTLIN_2_2 as well.
It also enables the -Xannotation-default-target=param-property
compiler flag, mainly for test purpose, in order to avoid the
related warnings and to use what will likely be the default in
an upcoming Kotlin version short term. For more details see
https://youtrack.jetbrains.com/issue/KT-73255.
KotlinPlatformJvmPlugin was a class from an old KMP plugin,
deprecated for a long time and now removed. So its usage in
PluginClasspathGradleBuild has been removed as well.
Signed-off-by: Sébastien Deleuze <sdeleuze@users.noreply.github.com>
See gh-46238
Previously, we called getCredentials() to determine whether or not a
repository requires authentication. Unfortunately, the method has the
unwanted side-effect of assigning empty username and password
credentials to a repository that previously did not require
authentication and did not, therefore, have any credentials. These
empty credentials can then cause subsequent failures because
"Username must not be null!".
There's no side-effect-free public API for accessing a repository's
credentials. Instead, we're using some internal API on
AuthenticationSupportedInternal. If this causes problems when
upgrading to a new version of Gradle a different approach will be
required. For example, we could pass in the repositories in two
separate collections: those that require authentication and those
that don't.
Closes gh-45950