Update restcontainers service connections support so that
technology specific `@ServiceConnector` annotations are not longer
required.
A single `@ServiceConnector` annotation can now be used to create
all `ConnectionDetail` beans.
Closes gh-35017
Prior to this commit, properties configured using the properties
attribute of a `@…Test` sliced test annotation would not be considered
when processed a `@Nested` test class. This would lead to the nested
class not reusing its outer class's application context due to the
two having different property configuration.
Fixes gh-33317
Building upon the auto-configuration support for service connections,
this commit adds support for deriving connection details from a
Testcontainers-managed container. Several service-specific
annotations have been introduced. These annotations can be used on a
container field to indicate that it is a source of the details for
a service connection.
See gh-34658
Co-Authored-By: Phillip Webb <pwebb@vmware.com>
Co-Authored-By: Mortitz Halbritter <mkammerer@vmware.com>
Prior to this commit, Spring Boot would auto-configure a customizer that
instruments `RestTemplate` through a `RestTemplateBuilder`. This would
install a request interceptor that instrumented client exchanges for
producing metrics.
As of spring-projects/spring-framework#28341, the instrumentation is
done at the `RestTemplate` level directly using the `Observation` API.
The `Tag` (now `KeyValue`) extraction, observation name and
instrumentation behavior now lives in the Spring Framework project.
This commit updates the auto-configuration to switch from Boot-specific
Metrics instrumentation to a generic Observation instrumentation.
As a migration path, some configuration properties are deprecated in
favor of the new `management.observations.*` namespace.
Closes gh-32484
This commit disables ContextCustomizer implementations that tune a
test configuration context at runtime. Previously, these ran again and
required additional hints to work properly.
Rather than contributing those hints, the customizer is skipped as its
impact is irrelevant in an AOT-optimized context: the context is fully
prepared and the updates on the MergedContextConfiguration are not taken
into account.
Closes gh-32422
Our mock didn't configure an expectation so null was returned. That's
prohibited by the javadoc and some recent Framework changes mean that
it's no longer tolerated.
Any classes that rely on Spring Data being on the classpath
have been moved under a data package.
Certain configuration properties have also been updated to
accurately reflect whether Spring Data is required for the
auto-configuration to work.
Closes gh-11574
This commit adds the Spring for GraphQL auto-configuration back
into Spring Boot 3.0, now that a 1.1.0 release is scheduled with the
required baseline. This release also needs GraphQL Java 19.0 as a
baseline.
Closes gh-31809
This commit introduces auto-configuration for the new Elasticsearch
clients that are based upon their new Java client. The new Java
client builds on top of their existing low-level REST client,
replacing the high-level REST client which has been deprecated.
As part of introducing support for the new Elasticsearch client,
the auto-configuration for the templates (both imperative and
reactive) provided by Spring Data has also been updated to use the
new templates that build upon the new Java client.
As part of these changes, support for the high-level REST client and
the old Spring Data Elasticsearch templates has been removed. One
significant change is that the new reactive template is no longer
based on WebClient. As a result, the WebClient-specific configuration
property has been removed.
Closes gh-30647
Closes gh-28597
Closes gh-31755
This commit makes the following potentially breaking changes:
- Dependency management for modules that do not exist in Hibernate
6.1 has been removed.
- Hibernate's modules are now in the org.hibernate.orm group. Users
not using the starter or using modules that are not in the starter
will have to update their build configuration accordingly.
- spring.jpa.hibernate.use-new-id-generator-mappings has been removed
as Hibernate no longer supports switching back to the old ID
generator mappings.
Co-authored-by: Andy Wilkinson <wilkinsona@vmware.com>
Closes gh-31674
This annotation is read by ObservabilityContextCustomizerFactory, which
then sets test properties depending on the annotation attributes.
@AutoConfigureMetrics is deprecated, to support backwards compatability
it's now meta-annotated with @AutoConfigureObservability
See gh-31308
This commit removes auto-configuration and dependency management
for Flapdoodle embedded MongoDB in favor of the Spring Boot support
provided by Flapdoodle.
Closes gh-30863
Prior to this commit, the auto-configured
`ExecutionGraphQlServiceTester` would use a default Jackson
`ObjectMapper` provided by the builder for its JSON
serialization/deserialization needs. Other testers, like the
`HttpGraphQlTester` are based on auto-configured components which
already use the auto-configured `ObjectMapper`.
This commit uses the newly introduced `encoder(Encoder<?>)` and
`decoder(Decoder<?>)` builder methods to configure custom JSON codecs
honoring the application configuration.
Closes gh-30646
- Moved from 'management.metrics.export.<product>' to
'management.<product>.metrics.export'
- The default enabled property moved from 'management.metrics.export.defaults.enabled'
to 'management.defaults.metrics.export.enabled'
Closes gh-30381
This commit adapts to the latest Spring GraphQL changes, renaming
`GraphQlService` to `ExecutionGraphQlService` as well as the
`WebInterceptor` contract to `WebGraphQlHandlerInterceptor`.
See spring-projects/spring-graphql#332