27706 Commits

Author SHA1 Message Date
Phillip Webb
7ec22d8668 Allow @ConfigurationPropertiesBinding to work with lambdas
Update `ConversionServiceDeducer` so that lambdas can be used with
`@ConfigurationPropertiesBinding` annotated `@Bean` methods.

This commit also allows more converter types to be detected.

Closes gh-44018
2025-01-30 16:03:26 -08:00
Phillip Webb
dcb2dd597e Polish 'Support lambda based converters via bean method signature generics'
See gh-22885
2025-01-30 15:04:24 -08:00
viviel
2921b1428e Support lambda based converters via bean method signature generics
Update `ApplicationConversionService` to support beans that are
implemented using lambdas. The updated code now uses the result of
`beanDefinition.getResolvableType()` if the type itself has unresolvable
generics.

See gh-22885
2025-01-30 15:00:49 -08:00
Andy Wilkinson
1bee5f3942 Merge branch '3.4.x'
Closes gh-44026
2025-01-30 12:12:08 +00:00
Andy Wilkinson
df32e21078 Merge branch '3.3.x' into 3.4.x
Closes gh-44025
2025-01-30 12:10:50 +00:00
Andy Wilkinson
01ec0c4fe0 Polish "Update SpringBootJoranConfigurator to use proper GraalVM format"
See gh-44021
2025-01-30 12:02:20 +00:00
Dmytro Nosan
d9f441d620 Update SpringBootJoranConfigurator to use proper GraalVM format
Before this commit, the generated name for the inner class had the
wrong format <package>.<parent>.<child> (canonical name).
GraalVM expects $ to separate the parent from the inner class.

This commit updates SpringBootJoranConfigurator to generate
an appropriate format for a class name. Specifically, an inner class
should be separated by a dollar sign, not a dot.

See gh-44021

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-01-30 12:00:33 +00:00
Moritz Halbritter
7ab89d1b16 Merge branch '3.4.x'
Closes gh-44023
2025-01-30 10:25:18 +01:00
Moritz Halbritter
dcd4b7cb57 Merge branch '3.3.x' into 3.4.x
Closes gh-44022
2025-01-30 10:25:02 +01:00
Moritz Halbritter
7f9b4c6ff6 Document Kubernetes' preStop sleep
Closes gh-43830
2025-01-30 10:22:25 +01:00
Johnny Lim
a2217e85fe Restore shouldNotRegisterStructuredLoggingJsonMembersCustomizerRuntimeHints()
See gh-44014

Signed-off-by: Johnny Lim <izeye@naver.com>
2025-01-29 12:51:37 -08:00
Phillip Webb
18a89f6007 Fix 'logging.structured.json.customizer' metadata
See gh-43368
2025-01-29 11:53:01 -08:00
Phillip Webb
921c362b97 Add 'spring.r2dbc.pool.acquire-retry' property
Add a new property to configure the pool acquire retry value.

Closes gh-44017
2025-01-29 11:48:32 -08:00
Phillip Webb
c1cb4c51ed Use a single customizer property for JSON logging
Update `StructuredLoggingJsonProperties` no that only a single
`customizer` property is supported.

See gh-43368
2025-01-29 11:26:22 -08:00
Moritz Halbritter
035c80aa5b Deprecate SignalFX tests
See gh-43962
2025-01-29 13:11:14 +01:00
Moritz Halbritter
58cc3a0d3d Deprecate SignalFX support
Closes gh-43962
2025-01-29 10:41:24 +01:00
Phillip Webb
a13fe0b565 Make @ConditionalOn[Boolean]Property @Repeatable
Update `ConditionalOnProperty`, `ConditionalOnBooleanProperty`
and `OnPropertyCondition` to support `@Repeatable`.

Closes gh-2541
2025-01-28 21:13:53 -08:00
Phillip Webb
f32b29e166 Don't use mocks for SystemStatusListenerTests
See gh-44012
2025-01-28 21:13:18 -08:00
Johnny Lim
36eeb3564e Remove duplicate test
Remove shouldNotRegisterStructuredLoggingJsonMembersCustomizer...
RuntimeHints since it duplicates shouldNotRegisterStructuredLogging...
JsonMembersCustomizerRuntimeHintsWhenCustomizerIsNotSet

See gh-44013

Signed-off-by: Johnny Lim <izeye@naver.com>
2025-01-28 20:19:18 -08:00
Dmytro Nosan
213b2ea9bc Add more tests for SystemStatusListener and LogbackLoggingSystem
See gh-44012

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-01-28 20:16:38 -08:00
Phillip Webb
3911ca7c8e Polish @ConditionalOnBean and @ConditionalOnMissingBean tests
Combine generic and regular tests and apply some polish.

See gh-29500
2025-01-28 20:14:16 -08:00
Uladzislau Seuruk
aa7864ea38 Add ConditionalOnBean support for generic @Bean return types
Update `ConditionalOnBean` so support generics when resolving the
`@Bean` method.

See gh-29500

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2025-01-28 20:14:08 -08:00
Dmytro Nosan
4878fc2a28 Polish SystemStatusListener
See gh-43931

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-01-28 12:03:11 -08:00
Phillip Webb
c884529561 Refine SystemStatusListener superfluous output fix
Change `SystemStatusListener` to a `OnConsoleStatusListener` to
ensure that it cannot be added twice from different threads.

Also add a local `retrospectivePrint()` that is used for non-debug
output that will print ERROR and WARN status, but not INFO.

See gh-43931
2025-01-28 11:16:00 -08:00
Dmytro Nosan
6ba8e9b089 Fix SystemStatusListener to prevent superfluous output
Fix `SystemStatusListener` so that superfluous output is not
printed when starting an application. This change ensures that
the `SystemStatusListener` is not added twice, and that
retrospective logging only occurs when `debug` is true.

See gh-43931

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-01-28 11:15:55 -08:00
Brian Clozel
fc01b011d5 Merge branch '3.4.x' 2025-01-28 17:14:23 +01:00
Brian Clozel
e01a23b1fe Merge branch '3.3.x' into 3.4.x
Closes gh-
2025-01-28 17:13:47 +01:00
Brian Clozel
817f466c12 Fix SSL file watcher for relative symlinks
Prior to this commit, a change in gh-43586 unlocked the support for
symlinks: instead of watching the link itself which might never change,
this would watch the target file which is likely to change.

This could break with an `IllegalStateException` in case the symlink is
using a path relative to the link itself.

This commit ensures that the target is resolved against the current
link path to avoid incorrect watch operations.

Fixes gh-43966
2025-01-28 16:35:09 +01:00
Moritz Halbritter
6fcbf14fc0 Add factory methods to create an SslManagerBundle from trust managers
Add two methods to create an SslManagerBundle from a given
TrustManagerFactory or from a single or multiple TrustManagers.

Both those methods use the default KeyManagerFactory.

Closes gh-43064
2025-01-28 13:37:16 +01:00
Moritz Halbritter
f24ba9935c Add ability to ignore configuration properties
Properties which should be ignored can be specified in the
additional-spring-configuration-metadata.json file. The ignored
properties section is copied into the final
spring-configuration-metadata.json file, and the ignored properties are
removed from the properties element in the final file.

Closes gh-2421
2025-01-28 11:09:26 +01:00
Phillip Webb
8536950826 Polish Logback StatusListener code
Introduce a `SystemStatusListener` class to simplify Logback
status listener registration for both debug and regular output.

See gh-43931
2025-01-27 22:28:31 -08:00
Dmytro Nosan
258eb29978 Register Logback StatusListener when using custom Logback file
Update `LogbackLoggingSystem` so that the `OnErrorConsoleStatusListener`
is also registered when loading a custom Logback configuration file.

See gh-43931

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-01-27 22:26:53 -08:00
Phillip Webb
7545bed284 Polish 2025-01-27 15:29:16 -08:00
Moritz Halbritter
cce509c7df Add configuration property to specify jOOQ settings file
The property is named 'spring.jooq.config' and is of type Resource,
so that it supports classpath: and all the other common prefixes.

The config is loaded through JAXB. If JAXB is not on the classpath,
an exception is thrown. Also adds a failure analyzer for this exception.

Closes gh-38778
2025-01-27 14:21:12 +01:00
Moritz Halbritter
b9bab7a98b Merge branch '3.4.x'
Closes gh-43976
2025-01-27 13:10:20 +01:00
Moritz Halbritter
8059c24e6a Merge branch '3.3.x' into 3.4.x
Closes gh-43975
2025-01-27 13:10:03 +01:00
Rucha Vaikar
c699779593 Correct the location of MyApplication.java in the docs
See gh-43965

Signed-off-by: Rucha Vaikar <70310911+Ru311@users.noreply.github.com>
2025-01-27 13:05:43 +01:00
Moritz Halbritter
1bab11f28d Merge branch '3.4.x'
Closes gh-43972
2025-01-27 11:43:30 +01:00
Moritz Halbritter
dd7708190c Merge branch '3.3.x' into 3.4.x
Closes gh-43971
2025-01-27 11:43:18 +01:00
Tran Ngoc Nhan
bee3dafc86 Add links to Jackson JavaDoc
See gh-43961

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
2025-01-27 11:42:06 +01:00
Phillip Webb
3ff6e0b5a9 Merge branch '3.4.x' 2025-01-24 19:24:42 -08:00
Phillip Webb
3b29085ac8 Merge branch '3.3.x' into 3.4.x 2025-01-24 19:24:10 -08:00
Phillip Webb
66c224b74a Update copyright year of changed files 2025-01-24 19:23:41 -08:00
Phillip Webb
c22dcedb59 Fix @ConfigurationProperties prefix violation
See gh-43917
2025-01-24 15:18:59 -08:00
Phillip Webb
8ec61b9870 Polish 'Refactor @ConfigurationProperties that only use prefix'
See gh-43917
2025-01-24 14:59:32 -08:00
Yanming Zhou
c1d97ffe16 Refactor @ConfigurationProperties that only use prefix
See gh-43917

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2025-01-24 14:58:36 -08:00
Phillip Webb
585030679a Polish 'Use isXxx() instead of getXxx() for boolean properties'
See gh-43934
2025-01-24 14:28:18 -08:00
Yanming Zhou
964abef6b3 Use isXxx() instead of getXxx() for boolean properties
Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>

See gh-43934
2025-01-24 14:27:47 -08:00
Phillip Webb
55633a1377 Polish 'Add support for multiple StructuredLoggingJsonMembersCustomizers'
See gh-43368
2025-01-24 14:00:24 -08:00
Yanming Zhou
aa5d8ecbea Add support for multiple StructuredLoggingJsonMembersCustomizers
Update `StructuredLoggingJsonProperties` and related class so that
multiple `StructuredLoggingJsonMembersCustomizer` classes can be
used.

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>

See gh-43368
2025-01-24 13:51:20 -08:00