Commit Graph

26227 Commits

Author SHA1 Message Date
Phillip Webb
c8676a81de Merge branch '2.6.x' into 2.7.x 2022-10-25 15:48:04 -07:00
Phillip Webb
d7ac20cd6c Update copyright year of changed files 2022-10-25 15:47:30 -07:00
Phillip Webb
9505673d6f Ensure application event listeners are always refreshed
Update `EventPublishingRunListener` to ensure that application event
listeners are always refreshed before multicasting initial events.

Prior to this commit, refreshing occurred after multicasting which
meant that listeners added by a different `SpringApplicationRunListener`
would not be picked up. This caused properties from tests that have
`UseMainMethod` set to `ALWAYS` or `WHEN_AVAILABLE` to be missing.

Fixes gh-32860
2022-10-25 15:41:57 -07:00
Phillip Webb
159910b0d9 Polish 2022-10-25 14:49:04 -07:00
Andy Wilkinson
e6c37d698f Reinstate support for read timeouts with RestTemplateBuilder
Refactor the way `ClientHttpRequestFactory` instances are created in
order to support setting read timeouts.

Prior to this commit, the reflection based approach would call
`setReadTimeout`. As of Spring Framework 6.0, the
`HttpComponentsClientHttpRequestFactory` class no longer supports this
approach. The timeout must be set on the `HttpClientConnectionManager`
used in the `HttpClient` which can be passed in to the constructor.

In order to support this approach, the `ClientHttpRequestFactory` can
now be created using a `Function` rather than a `Supplier`. The
function accepts a `ClientHttpRequestFactorySettings` which provides
the timeout settings to apply.

The `ClientHttpRequestFactories` utility class provides methods to
create `ClientHttpRequestFactory` instances that respect the settings.
Whenever possible, these are created without using reflection.

Fixes gh-32857

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2022-10-25 14:41:19 -07:00
Scott Frederick
c22e76632c Add Build-Jdk-Spec to jar and war manifest when building with Gradle
This commit adds a `Build-Jdk-Spec` attribute to the manifest in a
jar or war file built with the Spring Boot Gradle plugin. This
aligns the Gradle plugin's behavior with the default Maven plugin
behavior.

This removes the need to set a `BP_JVM_VERSION` environment variable
when invoking Cloud Native Buildpacks, as the Paketo buildpacks will
honor `Build-Jdk-Spec` in a jar or war manifest to determine the
default JVM version.

Fixes gh-32829
2022-10-25 15:48:05 -05:00
Moritz Halbritter
383d6c897f Remove reflection for SimpleRequestExpectationManager creation
Closes gh-32867
2022-10-25 16:15:51 +02:00
Moritz Halbritter
9ee3fd0b0b Disable HttpGraphQlTesterContextCustomizer after AOT processing
After AOT processing, a HttpGraphQlTester bean will be defined directly
so the context customizer that initiates its registration is not
needed.

Closes gh-32872
2022-10-25 14:02:55 +02:00
Andy Wilkinson
99edda735e Polish 2022-10-25 12:57:58 +01:00
Moritz Halbritter
b014039a34 Disable WebTestClientContextCustomizer after AOT processing
After AOT processing, a WebTestClient bean will be defined directly
so the context customizer that initiates its registration is not
needed.

Closes gh-32859
2022-10-25 13:51:43 +02:00
Moritz Halbritter
f2c004f604 Remove reflection in OutputCaptureExtension
Closes gh-32870
2022-10-25 11:42:52 +02:00
Moritz Halbritter
512a4c7544 Revert "Register runtime hints for OutputCapture"
This reverts commit 35abc3a6dc.
2022-10-25 11:40:44 +02:00
Moritz Halbritter
35abc3a6dc Register runtime hints for OutputCapture
Closes gh-32870
2022-10-25 11:29:12 +02:00
Andy Wilkinson
f11945b961 Start building against Spring Framework 6.0.0-RC3 snapshots
See gh-32856
2022-10-24 12:19:16 +01:00
Andy Wilkinson
b7fb345709 Revert workaround for multiple ImportRuntimeHints
Closes gh-32830
2022-10-24 10:20:50 +01:00
Andy Wilkinson
b78e7b5ac7 Disable TestRestTemplateContextCustomizer after AOT processing
After AOT processing, a TestRestTemplate bean will be defined
directly so the context customizer that initiates its registration is
not needed. We'd already disabled the registrar but this is
insufficient in Graal 22.3 which fails fast when the customizer tries
to reference the registrar.

Fixes gh-32848
2022-10-24 10:18:08 +01:00
Moritz Halbritter
605dd3d4bd Polish docs 2022-10-24 11:01:30 +02:00
Andy Wilkinson
9e6259cd37 Remove development-only dependencies from native image classpath
Fixes gh-32843
2022-10-24 09:22:13 +01:00
Andy Wilkinson
b0b2818f0b Improve type discovery in Logback AOT contribution
Logback can infer the Java class to which an XML tag should be mapped
by looking for a setter method on the class to which the parent tag
was mapped. This commits ensures that reflection hints are added for
such classes.

Fixes gh-32839
2022-10-21 16:38:52 +01:00
Andy Wilkinson
eebe23a081 Make all AOT-generated resources available to native-compile
Fixes gh-32841
2022-10-21 16:38:52 +01:00
Moritz Halbritter
ff6d9aa881 Polish "Add micrometer tracing documentation" 2022-10-21 14:51:19 +02:00
Andy Wilkinson
bed313746b Correct property names to align with changes in 3.0
See gh-32837
2022-10-21 12:23:07 +01:00
Johnny Lim
fc61690675 Add missing @Test to sanitizeLists()
See gh-32792
2022-10-21 12:05:44 +01:00
Andy Wilkinson
a606b26920 Merge branch '2.7.x'
Closes gh-32837
2022-10-21 11:04:52 +01:00
Andy Wilkinson
032487117b Merge branch '2.6.x' into 2.7.x
Closes gh-32836
2022-10-21 11:04:09 +01:00
Andy Wilkinson
fe51e03019 Support IPv6 addresses in spring.redis.sentinel.nodes
Fixes gh-32762
2022-10-21 10:53:54 +01:00
Moritz Halbritter
e999513838 Add micrometer tracing documentation
Closes gh-30658
2022-10-21 10:04:40 +02:00
Sébastien Deleuze
4e131bd627 Provide a workaround to allow multiple @ImportRuntimeHints
Provide a workaround for spring-projects/spring-framework#29361 so
that multiple `@ImportRuntimeHints` can be used in a type hierarchy.

The commit should cover Actuator web endpoint use cases with the
exception of Cloud Foundry endpoints which are not possible due to
package access issues.

See gh-29361
2022-10-20 17:12:58 -07:00
Phillip Webb
ea094ddba6 Fix package tangles caused by ConfigurationProperties hints
Relocate `ConfigurationPropertiesReflectionHintsProcessor` and refactor
it to be a general purpose `BindableRuntimeHintsRegistrar`.

Prior to this commit, `ConfigurationPropertiesReflectionHintsProcessor`
was used to declare binding hints for classes that were bound, but
might be `@ConfigurationProperties`. By moving and renaming the class,
it's now better aligned to the way it's used.

Support for `@NestedConfigurationProperties` has been implemented by
adding a `@Nestable` meta-annotation. This allow us to create the
appropriate hints, without the `Binder` needing to be directly aware of
the `@NestedConfigurationProperties` annotation.

Closes gh-32815
2022-10-20 17:05:54 -07:00
Phillip Webb
eb1d72e7b7 Merge branch '2.7.x' 2022-10-20 17:05:49 -07:00
Phillip Webb
d8c4aec946 Merge branch '2.6.x' into 2.7.x 2022-10-20 17:04:37 -07:00
Phillip Webb
1a14f39f83 Polish 2022-10-20 17:04:29 -07:00
Phillip Webb
7db93aeb90 Merge branch '2.7.x'
Closes gh-32827
2022-10-20 15:20:15 -07:00
Phillip Webb
1c7bff7cc1 Merge branch '2.6.x' into 2.7.x
Closes gh-32826
2022-10-20 15:01:00 -07:00
Phillip Webb
463a614d27 Fix package tangle between SpringApplication and Environment types
Update `SpringApplication` so that it no longer directly decides the
type of `Environment` that should be created.

Closes gh-32825
2022-10-20 14:51:13 -07:00
Scott Frederick
072ce5c151 Fix versions in documentation links
Fixes gh-32772
2022-10-20 14:59:14 -05:00
Scott Frederick
b78b22b6f6 Allow Gradle task property to be set with String or enum value
See gh-32769
2022-10-20 13:59:54 -05:00
Phillip Webb
c53c8c84b8 Fix annotation processor to deal with relocated @ConstructorBinding
Update `ConfigurationMetadataAnnotationProcessor` to use the correct
location for the `@ConstructorBinding` annotation and to deal with
finding it as a meta-annotation.

Closes gh-32660
2022-10-20 10:19:57 -07:00
Scott Frederick
bdedae21c0 Polish native image documentation
See gh-32582
2022-10-20 11:45:10 -05:00
Stephane Nicoll
010891a3c6 Merge branch '2.7.x'
Closes gh-32821
2022-10-20 16:43:25 +02:00
Stephane Nicoll
7bd9754ce1 Merge branch '2.6.x' into 2.7.x
Closes gh-32820
2022-10-20 16:43:14 +02:00
James Seung Hyun Son
5e0a67ac66 Fix typos in logging.adoc
See gh-32812
2022-10-20 16:41:24 +02:00
Stephane Nicoll
74a8eb7160 Merge branch '2.7.x'
Closes gh-32819
2022-10-20 16:40:30 +02:00
Stephane Nicoll
13691f27bd Merge branch '2.6.x' into 2.7.x
Closes gh-32818
2022-10-20 16:37:57 +02:00
Stephane Nicoll
4d7cb7144e Upgrade copyright year of changed files
See gh-32644
2022-10-20 16:35:55 +02:00
Ada-Claire
c5a1944267 Harmonize ConfigurationProperties code samples
Rename the SomeProperties class so that it is consistent with other
examples given within the Type-safe Configuration Properties. This
ensures that readers can intuitively draw the conclusion that the
MyProperties class is annotated with ConfigurationProperties.

See gh-32644
2022-10-20 16:35:18 +02:00
Andy Wilkinson
482eb49391 Support <import> in logback.xml during AOT processing
See gh-32756
2022-10-20 14:56:25 +01:00
Brian Clozel
685fa900f8 Auto-configure Observation instrumentation for WebFlux
Prior to this commit, Spring Boot would offer a specific Metrics
instrumentation for WebFlux applications through a `WebFilter` and
custom Tag providers.

As of Spring Framework 6.0, the Observation instrumentation is done
directly in WebFlux, also with a `WebFilter`. While this allows both
metrics and traces, some features cannot be supported in the same way
with this new infrastructure.
The former `WebFilter` has been removed and the Tagging infrastructure
deprecated in favor of custom Observation conventions. This commit
provides an adapter layer so that developers can refactor their custom
tagging solution to the convention way, during the deprecation phase,
without losing any feature.

Closes gh-32539
2022-10-20 15:29:31 +02:00
Stephane Nicoll
cda63b541f Upgrade to Spring Framework 6.0.0-RC2
Closes gh-32696
2022-10-20 15:24:51 +02:00
Andy Wilkinson
26e747d2db Fix package tangle in spring-boot-gradle-plugin
Closes gh-32814
2022-10-20 13:12:12 +01:00