Prior to this commit, Spring Boot auto-configurations for GraphQL web
endpoint were implementing their own `RequestPredicate` instances for
HTTP endpoints. Those were composing predicates with the provided DSL.
While this is functionnally right, Spring for GraphQL now provides
predicates in order to:
* host the implementation in spring-graphql directly
* provide optimized predicates for faster matching and lower overhead
This commit switches the auto-configurations to using these new
predicates.
Closes gh-39652
Adds a new jarmode called 'tools'. This provides two commands,
'extract' and 'list-layers'. list-layers is the same as list from
the layertools.
extract is able to extract the JAR in four different modes:
- CDS compatible extraction with libraries in a lib folder and a runner
.jar
- CDS compatible as above, but with layers
- Launcher based
- Launcher based with layers. This is essentially the same as extract
from the layertools
The commands in layertools have been deprecated in favor of the commands
in 'tools'.
This also changes the behavior of layers.enabled from the Gradle and
Maven plugin: before this commit, layers.enabled prevents the inclusion
of the layer index file as well as the layertools JAR.
After this commit, layers.enabled only prevents the inclusion of the
layer index file.
layer.includeLayerTools have been deprecated in favor of includeTools,
and the layertools JAR has been renamed to tools.
Closes gh-38276
Old formmat: yyyy-MM-dd'T'HH:mm:ssZ, RFC 822
New format: yyyy-MM-dd'T'HH:mm:ssXXX ISO 8601
Related to https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/674.
This change is required to make the times produced by the
git-commit-id-maven-plugin usable for Maven's reproducible builds,
see https://maven.apache.org/guides/mini/guide-reproducible-builds.html.
Timestamp for reproducible output archive entries must either formatted
as ISO 8601 or as an int representing seconds since the epoch.
Example usage might be
<properties>
<project.build.outputTimestamp>${git.commit.time}</project.build.outputTimestamp>
</properties>
See gh-39606
Update the BOM `Library` model to support external links that we
can use in documentation and the release process.
An additional `checkLinks` task has also been added to verify
returned HTTP status codes.
Closes gh-39779
Co-authored-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
This commit adapts the error controller tests that need the request
to fail with a bind issue, and simulate the behavior of
ModelAttributeMethodProcessor.
As of Spring Framework 6.0.x, this processor no longer throws a
BindingException, but rather a MethodArgumentNotValidException and
the handing of BindException itself is deprecated.
This makes sure that those tests can smoothly be executed against
Spring Framework 6.2.x as throwing a BindingException now results
into an unresolved exception, and an internal server error rather than
the expected bad request.
See gh-39767
This commit simplifies the generics used for SessionRepository and
FindByIdNameSessionRepository as their type signatures already declare
that `S` extends from `Session`.
See gh-39751
This commit moves the resolution check for ConnectionDetailsFactory
to a dedicated method to make it more clear that it is meant to verify
that the implementation is resolved and can be loaded from the
classpath.
The previous algorithm relied on a behavior of ResolvableType that only
resolves the first level generics. Further improvements in Spring
Framework 6.2 make this check invalid as some implementations use a
Container that can hold a nested generic.
See gh-39737