Commit Graph

2708 Commits

Author SHA1 Message Date
dreis2211 cf0fcafd13 Polish
See gh-27940
2021-09-21 08:08:29 +02:00
Andy Wilkinson b69ef0c881 Upgrade to Oracle Database 21.3.0.0
Closes gh-28054
2021-09-20 17:44:57 +01:00
Stephane Nicoll c62a6819fe Polish "Add startup time metrics"
See gh-27878
2021-09-16 13:33:08 +02:00
bono007 2e67963bfe Add startup time metrics
See gh-27878
2021-09-16 13:19:20 +02:00
Andy Wilkinson 358ab2a8d5 Merge branch '2.5.x'
Closes gh-28034
2021-09-16 10:51:14 +01:00
Andy Wilkinson a4f1d32203 Register application shutdown hook lazily
Previously, SpringApplicationShutdownHook would always register a
shutdown hook, even if SpringApplication was configured not to
use a shutdown hook, such as in a war deployment. This could
result in a memory leak when the war was undeployed. The shutdown
hook registered by SpringApplicationShutdownHook would remain
registered, pinning the web application's class loader in memory.

This commit updates SpringApplicationShutdownHook so that it
registers a shutdown hook with the JVM lazily, upon registeration
of the first application context.

Fixes gh-27987
2021-09-16 10:38:29 +01:00
Andy Wilkinson 69e793ab37 Merge branch '2.5.x'
Closes gh-28033
2021-09-16 09:56:26 +01:00
Andy Wilkinson afb81f14ea Merge branch '2.4.x' into 2.5.x
Closes gh-28032
2021-09-16 09:55:45 +01:00
Andy Wilkinson 1900a11f8a Fix Undertow's resource loading when filename contains reserved chars
Fixes gh-9283
2021-09-16 09:55:26 +01:00
Stephane Nicoll 8c819c94d6 Upgrade to Tomcat 9.0.53
Closes gh-27964
2021-09-13 11:04:57 +02:00
Stephane Nicoll 2004c062df Upgrade to Tomcat 9.0.53
Closes gh-27963
2021-09-13 11:04:02 +02:00
Stephane Nicoll ab81e3c05c Upgrade to Tomcat 9.0.53
Closes gh-27961
2021-09-13 10:28:42 +02:00
dreis2211 e1afc91ae2 Polish javadoc comments
See gh-27925
2021-09-10 07:53:49 +02:00
dreis2211 242d730f51 Deprecate DataSourceInitializationMode
See gh-27926
2021-09-10 07:51:32 +02:00
Stephane Nicoll e10ebb17e0 Polish "Fix tests on non English systems"
See gh-27887
2021-09-08 08:07:09 +02:00
dreis2211 32e51966dd Fix tests on non English systems
See gh-27887
2021-09-08 07:59:35 +02:00
Stephane Nicoll b4b71ec015 Add bind method to ConfigurationProperties bean definition
This commit reworks the configuration properties registrar to use
RootBeanDefinition and a standard attribute rather than relying on
a package private sub-class. This allows other components to inspect
the metadata if necessary.

Closes gh-27821
2021-09-06 10:28:03 +02:00
Stephane Nicoll 542e6ab0d3 Merge branch '2.5.x'
Closes gh-27879
2021-09-06 08:33:14 +02:00
Stephane Nicoll d6cc1f6d7d Polish "Use more precise variables to detect Azure App Service"
See gh-27819
2021-09-06 08:28:58 +02:00
Julien Dubois 69b23470c7 Use more precise variables to detect Azure App Service
See gh-27819
2021-09-06 08:12:22 +02:00
Stephane Nicoll e25553e3c3 Merge branch '2.5.x'
Closes gh-27874
2021-09-05 17:02:43 +02:00
Stephane Nicoll 3dab5ff2c0 Merge branch '2.4.x' into 2.5.x
Closes gh-27873
2021-09-05 17:02:17 +02:00
Henning Pöttker 831e28b001 Fix typo in javadoc
See gh-27856
2021-09-05 17:01:31 +02:00
Phillip Webb b01fa6a899 Merge branch '2.5.x'
Closes gh-27860
2021-09-02 11:17:06 -07:00
Phillip Webb 1215bbc10b Merge branch '2.4.x' into 2.5.x
Closes gh-27859
2021-09-02 11:16:42 -07:00
Phillip Webb 61764389c2 Merge branch '2.3.x' into 2.4.x
Closes gh-27858
2021-09-02 11:15:32 -07:00
Phillip Webb 44eb8c39d2 Align ApplicationTemp with Files.createTempDirectory
Update `ApplicationTemp` to align the way that it creates temp folders
with the way that `Files.createTempDirectory` works.

Closes gh-27857
2021-09-02 11:13:26 -07:00
Madhura Bhave 253f98c3e7 Add pluggable abstraction for applying custom sanitization rules
Closes gh-27840
2021-08-30 21:31:15 -07:00
Phillip Webb 211532f08d Exclude CustomNumberEditor and CustomBooleanEditor
Add `CustomNumberEditor` and `CustomBooleanEditor` to the editor
exclusions sine the regular `ConversionService` should be able to
handle them.

Closes gh-27829
2021-08-27 23:15:23 -07:00
Phillip Webb 8db82f02fc Merge branch '2.5.x'
Closes gh-27831
2021-08-27 22:49:39 -07:00
Phillip Webb 15d0078eca Merge branch '2.4.x' into 2.5.x
Closes gh-27830
2021-08-27 22:40:56 -07:00
Phillip Webb 87dbda2339 Ensure TypeConverterConverter is thread safe
Update `TypeConverterConverter` do that a new `SimpleTypeConverter` is
obtained for each `convert` operation. Prior to this commit the same
`SimpleTypeConverter` could be accessed concurrently from multiple
threads which is not allowed.

Fixes gh-27829
2021-08-27 22:08:40 -07:00
izeye e147cae84c Fix typo in action for bean currently in creation failure analysis
See gh-27781
2021-08-23 13:36:59 +01:00
Andy Wilkinson fd2fbcb3c6 Merge branch '2.5.x'
Closes gh-27758
2021-08-18 18:28:34 +01:00
Andy Wilkinson 6d8ba3e8b1 Merge branch '2.4.x' into 2.5.x
Closes gh-27757
2021-08-18 17:56:32 +01:00
Andy Wilkinson ffbd28b60a Polish "Polish access modifiers for test classes"
See gh-27736
2021-08-18 17:52:42 +01:00
izeye 8a425dedfd Polish access modifiers for test classes
See gh-27736
2021-08-18 17:38:40 +01:00
Andy Wilkinson 01e741d703 Prohibit circular references by default
Closes gh-27652
2021-08-17 14:51:39 +01:00
dreis2211 d5e1edae9f Use Pattern for Groovy closure checks
See gh-27661
2021-08-16 08:13:49 +02:00
Andy Wilkinson 9bfe3c8cff Merge branch '2.5.x'
Closes gh-27639
2021-08-12 12:33:08 +01:00
Andy Wilkinson aafa21686a Merge branch '2.4.x' into 2.5.x
Closes gh-27638
2021-08-12 12:32:56 +01:00
Andy Wilkinson 3bed23d9dc Replace PropertyMapper.CachingSupplier with use of SingletonSupplier
Closes gh-27635
2021-08-12 12:04:18 +01:00
Stephane Nicoll 57050fade4 Fix typo 2021-08-12 11:32:18 +02:00
Madhura Bhave 49c86e6e1b Allow health groups to be configured at an additional path
Closes gh-25471

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-08-11 19:25:25 -07:00
Stephane Nicoll 94c347c64d Merge branch '2.5.x'
Closes gh-27619
2021-08-10 10:04:09 +02:00
Stephane Nicoll 1d29443e71 Merge branch '2.4.x' into 2.5.x
Closes gh-27618
2021-08-10 10:04:01 +02:00
Henning Pöttker 5b15c2191b Fix typo in javadoc
See gh-27614
2021-08-10 09:59:30 +02:00
Stephane Nicoll e86ba076ec Merge branch '2.5.x'
Closes gh-27556
2021-08-04 08:56:02 +02:00
Stephane Nicoll a9ea8d95f3 Merge branch '2.4.x' into 2.5.x
Closes gh-27555
2021-08-04 08:55:51 +02:00
wuwen 46c47dcd29 Remove dead code in DefaultErrorAttributes
See gh-27538
2021-08-04 08:45:30 +02:00
Andy Wilkinson 621844abda Polish "Use MessageSource to interpolate bean validation messages"
See gh-17530
2021-07-26 12:10:15 +01:00
Dmytro Nosan bbb8367afb Use MessageSource to interpolate bean validation messages
See gh-17530
2021-07-26 12:10:15 +01:00
Andy Wilkinson a5656e0932 Make @ConstructorBinding implict for config prop records
Closes gh-27216
2021-07-24 10:03:37 +01:00
Andy Wilkinson dd7dd58f41 Merge branch '2.5.x'
Closes gh-27471
2021-07-23 11:02:43 +01:00
Andy Wilkinson 589a22eb0d Merge branch '2.4.x' into 2.5.x
Closes gh-27470
2021-07-23 11:02:24 +01:00
Andy Wilkinson 9e81fb3e38 Fix race condition in Jetty graceful shutdown tests
Some of the Jetty graceful shutdown tests were flaky due to the way
in which Jetty behaves when it is stopped.
Stopping the Jetty web server interrupts the thread that's handling
the active request. This initiates a race between the request-handling
thread which will decrement the number of active requests and the
main thread which expects an active request to cause the shutdown
result to be REQUESTS_ACTIVE. The test passes when the main thread
wins and fails as a request is active which it's checked. When the
request-handling thread wins the test fails as the count of active
requests has been deprecated before it is checked.

The blocking servlet that's used to stall a request and keep it
active needs to be updated to ignore the thread being interrupted
and continue waiting. This will ensure that a request remains active
until the main thread has checked the active request count and
determine the result of the shutdown.

Closes gh-27464
2021-07-23 10:30:17 +01:00
Phillip Webb 7e9ac39f0d Update copyright year of changed files 2021-07-22 09:50:37 -07:00
Phillip Webb 20a6073913 Polish 2021-07-22 09:50:17 -07:00
Andy Wilkinson c9361798be Merge branch '2.5.x'
Closes gh-27455
2021-07-22 11:42:45 +01:00
Andy Wilkinson 18b4898977 Polish "Fix deriving DataSources from custom type"
See gh-27453
2021-07-22 11:41:54 +01:00
saraswathy-krish d0e2823c49 Fix deriving DataSources from custom type
Eliminate the unsupported datasource property exception thrown
when trying to derive a datasource from an unknown datasource type.

See gh-27453
2021-07-22 11:41:54 +01:00
Andy Wilkinson 37f690323f Polish
Closes gh-27432
2021-07-21 11:55:38 +01:00
Andy Wilkinson bb26b7bdf5 Polish
Closes gh-27431
2021-07-21 11:53:10 +01:00
izeye 734293d491 Polish
See gh-27418
2021-07-21 11:17:43 +01:00
Andy Wilkinson 91579158c3 Merge branch '2.5.x'
Closes gh-27425
2021-07-21 10:58:27 +01:00
Andy Wilkinson 29c83bfd76 Instantiate detectors with ClassLoader that discovered them
Fixes gh-27422
2021-07-21 10:57:30 +01:00
Andy Wilkinson 289ebef7da Merge branch '2.5.x'
Closes gh-27420
2021-07-20 18:00:21 +01:00
Andy Wilkinson a5e95ef4c8 Merge branch '2.4.x' into 2.5.x
Closes gh-27419
2021-07-20 17:59:53 +01:00
Andy Wilkinson b5587b053d Use ClassLoader that will load Yaml to check if it's present
Fixes gh-27133
2021-07-20 17:59:40 +01:00
Andy Wilkinson a05da3ae14 Merge branch '2.5.x'
Closes gh-27416
2021-07-20 15:14:44 +01:00
dreis2211 0ea3b9246a Add Java 17 to JavaVersion enum
See gh-26769
2021-07-20 15:12:50 +01:00
Andy Wilkinson b5ef5a2d90 Merge branch '2.5.x'
Closes gh-27408
2021-07-19 20:20:19 +01:00
Andy Wilkinson 9d2cb162e6 Configure initializer dependencies grouped by detector
Previously, database initializers were detected and were configured
with dependencies based on their detection order. For example, if
detectors a, b, and c detected initializers a1, b1, b2, and c1,
c1 would depend on b2, b2 on b1, and b1 on a1:

------     ------     ------     ------
| c1 | --> | b2 | --> | b1 | --> | a1 |
------     ------     ------     ------

This could cause a dependency cycle in certain situations, for
example because the user had already configured b1 to depend on b2.

This commit reduces the risk of a cycle being created by batching
the initializers by their detector, with dependencies being
configured between each batch rather than between every initializer.
In the example above, this results in c1 depending on b1 and b2,
and b1 and b2 depending on a1:

           ------
------     | b1 |     ------
| c1 | --> |    | --> | a1 |
------     | b2 |     ------
           ------

As b1 and b2 were detected by the same detector, no dependency
between those initializers is defined.

Closes gh-27131
2021-07-19 20:00:59 +01:00
Andy Wilkinson 4d30eb453f Adopt Hiberate's CamelCaseToUnderscoresNamingStrategy
Closes gh-27352
2021-07-19 13:19:49 +01:00
Andy Wilkinson 8540bc0d12 Polish restoration of ConfigFileApplicationListener
See gh-27303
2021-07-14 18:01:34 +01:00
Phillip Webb be5e8b3139 Restore ConfigFileApplicationListener in deprecated form
Restore `ConfigFileApplicationListener` in a deprecated form since
Spring Cloud need it. Scheduled removal is now in 3.0.0.

See gh-27303
2021-07-14 08:30:11 -07:00
Andy Wilkinson c406dda181 Deprecate AbstractDataSourceInitializer
Closes gh-27206

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-07-14 13:39:14 +01:00
Stephane Nicoll dc5acb0019 Remove deprecated code flagged for removal
Closes gh-27303
2021-07-14 11:50:01 +02:00
Andy Wilkinson 9ccd6a6f2f Merge branch '2.5.x'
Closes gh-27307
2021-07-13 15:56:32 +01:00
Andy Wilkinson 705feeed6a Polish "Allow additional JVM args when running tests via toolchain"
See gh-27089
2021-07-13 15:28:04 +01:00
dreis2211 01b0156fed Allow additional JVM args when running tests via toolchain
See gh-27089
2021-07-13 15:24:45 +01:00
Andy Wilkinson d8d98e615b Merge branch '2.5.x'
Closes gh-27223
2021-07-09 12:22:33 +01:00
Andy Wilkinson 94f94f30f5 Polish "Detect AbstractDataSourceInitializers as DB initializers"
See gh-27215
2021-07-09 12:05:56 +01:00
Henning Pöttker 433f3d6bc4 Detect AbstractDataSourceInitializers as DB initializers
See gh-27215
2021-07-09 12:04:17 +01:00
Madhura Bhave d82b46b718 Merge branch '2.5.x' into main
Closes gh-27212
Closes gh-27213
2021-07-08 13:05:46 -07:00
Madhura Bhave 0f70c46746 Merge branch '2.4.x' into 2.5.x
Closes gh-27210
Closes gh-27211
2021-07-08 13:04:48 -07:00
Madhura Bhave 42e556dd73 Handle file with name matching an optional wildcard location
Previously, the presence of a file with the same name
as an optional wildcard location would cause a failure. With
this change the pattern is resolved only if the resource is a
directory.

Additionally, if an optional wildcard search location that was a file
would also fail with an exception. This commit fixes that so that those
locations are not resolved.

Fixes gh-27120
Fixes gh-27209
2021-07-08 13:01:15 -07:00
Andy Wilkinson bd1b73be94 Merge branch '2.5.x'
Closes gh-27186
2021-07-08 09:18:45 +01:00
Andy Wilkinson 283b4a6ed2 Improve error message for non-options-capable ConnectionFactory
Fixes gh-26977
2021-07-08 09:17:55 +01:00
Stephane Nicoll fa1eb544c1 Merge branch '2.5.x'
Closes gh-27155
2021-07-06 09:10:13 +02:00
Stephane Nicoll 888393d63b Merge branch '2.4.x' into 2.5.x
Closes gh-27154
2021-07-06 09:10:03 +02:00
Stephane Nicoll 5ec0c7ed12 Polish "Fix duration to microseconds conversion"
See gh-27149
2021-07-06 09:07:48 +02:00
marckchr a406a46fa1 Fix duration to microseconds conversion
See gh-27149
2021-07-06 09:07:47 +02:00
Madhura Bhave 1f3b32c3b9 Merge branch '2.5.x' into main
Closes gh-27138
2021-07-01 15:46:21 -07:00
Madhura Bhave 55593a7ac1 Merge branch '2.4.x' into 2.5.x
Closes gh-27137
2021-07-01 15:46:00 -07:00
Madhura Bhave eb4144eb97 Add clarification on when @DevaultValue is used during binding
Closes gh-26742
2021-07-01 15:39:16 -07:00
Andy Wilkinson 8b9991fcc7 Merge branch '2.5.x'
Closes gh-27076
2021-06-24 14:07:17 +01:00
Andy Wilkinson 5a9fa3c8f1 Only close context that is active
Previously, SpringApplicationShutdownHook would call close() on any
registered application context even if it wasn't active as it had
already been closed. This could lead to deadlock if the context was
closed and System.exit was called during application context refresh.

This commit updates SpringApplicationShutdownHook so that it only
calls close() on active contexts. This prevents deadlock as it avoids
trying to sychronize on the context's startupShutdownMonitor on
the shutdown hook thread while it's still held on the main thread
which called System.exit and is waiting for all of the shutdown hooks
to complete.

Fixes gh-27049
2021-06-24 14:07:02 +01:00
Andy Wilkinson 9b91c18163 Merge branch '2.5.x'
See gh-27073
2021-06-24 09:53:20 +01:00
Andy Wilkinson e2d68aa8b2 Merge branch '2.4.x' into 2.5.x
See gh-27072
2021-06-24 09:53:04 +01:00
Andy Wilkinson a7872f47da Minimize Instantiator's public API
See gh-27043
2021-06-24 09:27:08 +01:00
Phillip Webb 6686a49b1f Merge branch '2.5.x'
Closes gh-27074
2021-06-24 00:04:44 -07:00
Phillip Webb b093db104c Pass ResourceLoader.getClassLoader() to Instantiator
Update calls to `Instantiator` to that they also include
`ResourceLoader.getClassLoader()`.

Closes gh-27071
2021-06-24 00:03:16 -07:00
Phillip Webb fe34bcdd52 Merge branch '2.5.x'
Closes gh-27073
2021-06-23 23:33:18 -07:00
Phillip Webb 641dfbdf98 Merge branch '2.4.x' into 2.5.x
Fixes gh-27072
2021-06-23 23:32:50 -07:00
Phillip Webb 5088927f80 Pass ClassLoader to Instantiator
Update `Instantiator` so that it can accept a `ClassLoader` when
creating instances and rework `EnvironmentPostProcessorsFactory` to
use the new methods.

Prior to this commit we would use the `ClassLoader` to get the class
names from `SpringFactories` but not when actually creating the
instances.

Fixes gh-27043
2021-06-23 23:30:53 -07:00
Phillip Webb 6102f10639 Merge branch '2.5.x' 2021-06-23 21:02:36 -07:00
Phillip Webb 2c518f1dff Merge branch '2.4.x' into 2.5.x 2021-06-23 21:02:05 -07:00
Phillip Webb b141fcf51d Merge branch '2.5.x'
Closes gh-27061
2021-06-23 21:01:05 -07:00
Phillip Webb 84fab65b9a Merge branch '2.4.x' into 2.5.x
Closes gh-27060
2021-06-23 21:00:46 -07:00
Phillip Webb ea62967ef4 Improve "reason" message in BindFailureAnalyzer
Update `BindFailureAnalyzer` so that the "Reason" message includes
the root cause exception type and message.

Closes gh-27028
2021-06-23 20:54:01 -07:00
Phillip Webb 0e28e24123 Rethrow ConverterNotFoundException when possible
Update `BindConverter` to throw the first `ConversionFailedException`
rather than always throwing `ConverterNotFoundException`.

See gh-27028
2021-06-23 20:53:35 -07:00
Phillip Webb fe95c2a80c Merge branch '2.5.x'
Closes gh-27059
2021-06-23 17:47:19 -07:00
Phillip Webb a77e116c03 Merge branch '2.4.x' into 2.5.x
Closes gh-27058
2021-06-23 17:47:08 -07:00
Phillip Webb 93d316ddd1 Add additional ConfigDataProperties tests
Add more `isActive` tests to cover negative cases.

See gh-27017
2021-06-23 17:46:23 -07:00
fengyuanwei b91c66b823 Fix typo in ConfigDataPropertiesTests
See gh-27017
2021-06-23 17:38:46 -07:00
Andy Wilkinson 515072b2e1 Merge branch '2.5.x'
Closes gh-27018
2021-06-22 10:29:42 +01:00
Andy Wilkinson cf940fd374 Disable Log4j2's shutdown hook by default
Previously, Log4j2's own shutdown hook was only disabled when Log4j2
detected javax.servlet.Servlet on the classpath and, therefore,
determined that it was running in a web application. In an application
without Servlet on the classpath, this could lead to both Log4j2's shut
down hook and and logging system's shutdown handler both stopping
Log4j2. This could result in a failure as the second attempt at stopping
would result in reinitialization which would fail as the JVM is already
shutting down.

This commit introduces a new Log4j2 PropertySource implementation,
registered via META-INF/services, that sets the
log4j.shutdownHookEnabled property to false. This will ensure that
Log4j2's own shutdown hook is disabled by default whenever Spring Boot
is on the classpath and not just in Servlet-based web applications.

Fixes gh-26953
2021-06-22 10:17:25 +01:00
Stephane Nicoll 142a68292c Merge branch '2.5.x'
Closes gh-27011
2021-06-22 08:21:41 +02:00
Stephane Nicoll 168478f68c Merge branch '2.4.x' into 2.5.x
Closes gh-27010
2021-06-22 08:21:31 +02:00
Sviatoslav Hryb 2252deb69b Document uuid support in RandomValuePropertySource
See gh-26975
2021-06-22 08:16:55 +02:00
Phillip Webb 86dc156162 Merge branch '2.5.x'
Closes gh-27006
2021-06-21 18:37:43 -07:00
Phillip Webb f914dc15fc Merge branch '2.4.x' into 2.5.x
Closes gh-27005
2021-06-21 18:37:08 -07:00
Phillip Webb 8189e82c02 Allow nested profile-specific resolution
Effectively revert commit 0da0d2d46 so that the `resolveProfileSpecific`
method of `ConfigDataLocationResolver` is again called when resolving
imports declared in a profile-specific file.

Fixes gh-26960
2021-06-21 18:30:03 -07:00
Andy Wilkinson a983a4ae07 Merge branch '2.5.x'
Closes gh-26989
2021-06-21 12:07:06 +01:00
Andy Wilkinson 580b1b81ab Fix HTTP/2 over TLS with Jetty 10
Fixes gh-26988
2021-06-21 12:06:10 +01:00
Scott Frederick fffe2e4f97 Include caller info in NoSuchMethodError failure analysis
Fixes gh-26895
2021-06-17 13:46:51 -05:00
Andy Wilkinson b1c04e91d7 Merge branch '2.5.x'
Closes gh-26951
2021-06-17 19:43:57 +01:00
Andy Wilkinson 5d20edc666 Allow BFPP to modify database initialization ordering
Fixes gh-26899
2021-06-17 18:08:39 +01:00
Andy Wilkinson 69b730521a Merge branch '2.5.x'
See gh-26936
2021-06-17 11:55:26 +01:00
Andy Wilkinson 566a642ce7 Merge branch '2.4.x' into 2.5.x
See gh-26935
2021-06-17 11:54:54 +01:00
Andy Wilkinson 204dd29c51 Fix test on Windows
See gh-26821
2021-06-17 11:54:24 +01:00
Andy Wilkinson 2d44119894 Merge branch '2.5.x'
Closes gh-26943
2021-06-17 11:43:15 +01:00
Andy Wilkinson 7ee3b287e1 Catch isEmbedded failure and treat database as not embedded
Fixes gh-26926
2021-06-17 11:42:26 +01:00
Andy Wilkinson fb8f7afce5 Merge branch '2.5.x'
Closes gh-26942
2021-06-17 11:24:28 +01:00
Andy Wilkinson 7cd2d6474c Only check database's type when there are scripts to apply
Fixes gh-26925
2021-06-17 09:55:33 +01:00
Phillip Webb 7bd6611e4c Merge branch '2.5.x'
Closes gh-26940
2021-06-16 22:43:52 -07:00
Phillip Webb c3b873c11d Merge branch '2.4.x' into 2.5.x
Closes gh-26939
2021-06-16 22:43:13 -07:00
Phillip Webb b5c92d5174 Allow indirect standard profile-specific imports
Effectively revert commit d1b256a169 so that profile-specific imports
can again be used with or without a parent import.

Fixes gh-26858
2021-06-16 22:30:29 -07:00
Scott Frederick 256a523e84 Merge branch '2.5.x'
Closes gh-26936
2021-06-16 16:00:09 -05:00
Scott Frederick 79f47b150a Merge branch '2.4.x' into 2.5.x
Closes gh-26935
2021-06-16 15:59:38 -05:00
Scott Frederick 5147fcacdf Improve BeanNotOfRequiredTypeFailureAnalyzer output
This commit modifies the output of BeanNotOfRequiredTypeFailureAnalyzer
to include type information for both the actual and the required types
and to remove ambiguity.

Fixes gh-26821
2021-06-16 14:44:11 -05:00
Stephane Nicoll caa87f1a90 Merge branch '2.5.x'
Closes gh-26911
2021-06-15 08:24:30 +02:00
izeye eeefaf4314 Fix Javadoc deprecated since
See gh-26907
2021-06-15 08:23:13 +02:00
Stephane Nicoll d5d23d73e7 Polish "Allow SpringApplicationBuilder to specify a ResourceLoader"
See gh-26690
2021-06-14 08:17:52 +02:00
Jamin Hitchcock 7b0ba35025 Allow SpringApplicationBuilder to specify a ResourceLoader
See gh-26690
2021-06-14 08:17:02 +02:00
Andy Wilkinson f3f119b111 Don't shutdown logging system before contexts
Add `SpringApplicationShutdownHook` to manage orderly application
shutdown, specifically around the `LoggingSystem`. `SpringApplication`
now offers a `getShutdownHandlers()` method that can be used to add
handlers that are guaranteed to only run after the `ApplicationContext`
has been closed and is inactive.

Fixes gh-26660
2021-06-10 07:56:48 -07:00
Phillip Webb 2835085ffb Polish 2021-06-10 00:21:38 -07:00
Phillip Webb 17671980dc Merge branch '2.4.x' 2021-06-10 00:15:48 -07:00
Phillip Webb 7c4f178c17 Merge branch '2.3.x' into 2.4.x 2021-06-10 00:15:28 -07:00
Phillip Webb 3b48526732 Polish 2021-06-10 00:12:34 -07:00
Andy Wilkinson c5728c9560 Merge branch '2.4.x'
Closes gh-26827
2021-06-09 09:13:21 +01:00
Andy Wilkinson 303edac6bb Merge branch '2.3.x' into 2.4.x
Closes gh-26826
2021-06-09 09:13:06 +01:00
Andy Wilkinson d1e1796f76 Consider overridden getRootUri() when getting root URI
Fixes gh-26812
2021-06-09 09:12:37 +01:00
Phillip Webb f798f26596 Merge branch '2.4.x' 2021-06-08 18:05:50 -07:00
Phillip Webb 4d62e47c5d Merge branch '2.3.x' into 2.4.x 2021-06-08 18:05:12 -07:00
Phillip Webb 9e1c78da99 Update copyright year of changed files 2021-06-08 18:03:46 -07:00
Phillip Webb b7ac1e6cd7 Rename derivefrom to align with DataSourceBuilder
Rename the `derivefrom` method in `ConnectionFactoryBuilder` to
`derivedFrom` to align with `DataSourceBuilder`.

Fixes gh-26810
2021-06-08 15:44:01 -07:00
Phillip Webb 6ab2df5698 Order DataSourceScriptDatabaseInitializer last
Change the order of `DataSourceScriptDatabaseInitializerDetector` so
that it always runs last. This update allows script initialization to
be combined with a high-level migration tool such as Flyway.

Closes gh-26692
2021-06-08 14:10:59 -07:00
Phillip Webb dafd511284 Support DatabaseInitializerDetector ordering
Update `DatabaseInitializationDependencyConfigurer` so that depends-on
ordering is applied based on the `DatabaseInitializerDetector` order.

Prior to this commit, if multiple DatabaseInitializer beans were
detected the order in which they were initialized was not defined.

See gh-26692
2021-06-08 14:10:55 -07:00
Andy Wilkinson 8df6392ca5 Polish
The use of the file's absolute path caused test failures on Windows.

See gh-26682
2021-06-08 18:28:09 +01:00
Andy Wilkinson c52143727a Reinstate mode for controlling DB initialization
Closes gh-26682
2021-06-08 15:13:55 +01:00
Stephane Nicoll faeda6f917 Polish 2021-06-08 10:32:50 +02:00
Phillip Webb f5b93da90f Fix conversion failures when using DefaultResolver
Update `ConfigurationPropertySourcesPropertyResolver` so that calls to
the `DefaultResolver` do not attempt conversion.

Prior to this commit, the delegate resolver was accidentally called
with the target type which could cause a `ConversionFailedException`
to be thrown. We should have always used `Object.class` and let the
`convertValueIfNecessary` method perform conversion.

Fixes gh-26732
2021-06-07 22:07:22 -07:00
Phillip Webb be23a29651 Polish 2021-06-07 20:44:23 -07:00
Phillip Webb abd926788f Merge branch '2.4.x'
Closes gh-26782
2021-06-06 21:53:10 -07:00
Phillip Webb 7396e1e743 Fix property ordering within '.' and '/config'
Allow groups to be used with standard locations so that order of
profile-specific files is consistent.

Prior to this commit, the default search locations considered for
application properties/yaml files was the following:

	optional:classpath:/
	optional:classpath:/config/
	optional:file:./
	optional:file:./config/
	optional:file:./config/*/

Each of these locations was independent which could cause confusion
if certain combinations were used. For example, if profile-specific
files were added to `classpath:/` and `classpath:/config/` then the
latter would always override the former regardless of the profile
ordering.

This commit updates `StandardConfigDataLocationResolver` so that a
group of locations can be specified for each item. This allows us to
define the following set of search locations which provide more logical
ordering for profile-specific files

	optional:classpath:/;optional:classpath:/config/
	optional:file:./;optional:file:./config/;optional:file:./config/*/

Closes gh-26593
2021-06-06 21:05:54 -07:00
Phillip Webb e73062aefa Merge branch '2.4.x'
Closes gh-26755
2021-06-03 22:24:17 -07:00
Phillip Webb 0da0d2d469 Prevent nested profile-specific resolution
Update the `ConfigDataEnvironment` so that the `resolveProfileSpecific`
method of `ConfigDataLocationResolver` is no longer called when
resolving imports declared in a profile-specific file.

Fixes gh-26753
2021-06-03 22:24:01 -07:00
Phillip Webb 3c7a0d3bf2 Merge branch '2.4.x'
Closes gh-26754
2021-06-03 22:23:27 -07:00
Phillip Webb d1b256a169 Prevent indirect standard profile-specific imports
Update `StandardConfigDataLocationResolver` so that profile-specific
imports can only be used when there is no parent import.

Prior to this commit, given the following application.properties file:

	spring.profiles.active=p1,p2
	spring.config.import=other.properties

We would attempt to import `other.properties`, `other-p1.properties`
and `other-p2.properties`. This seems quite confusing and when we really
only need to support profile-specific properties for the initial root
set of locations.

Fixes gh-26752
2021-06-03 22:22:44 -07:00
Madhura Bhave e2cba40db0 Merge branch '2.4.x' into main
Closes gh-26739
2021-06-02 12:02:53 -07:00
Madhura Bhave b102fdd392 Merge branch '2.3.x' into 2.4.x
Closes gh-26738
2021-06-02 12:02:11 -07:00
Madhura Bhave 15324956a8 Align int and long in RandomValuePropertySource
This commit aligns int and long so that a random number is generated
by delegating to ints/longs in the JDK's Random API. In the case of a
single bound value, it needs to be greater than 0 because 0 is used as
the lower bound.

Fixes gh-26628
2021-06-02 12:00:25 -07:00
Stephane Nicoll 97c5a08ca5 Merge branch '2.4.x'
Closes gh-26725
2021-06-01 15:38:48 +02:00
Stephane Nicoll c8959180fe Merge branch '2.3.x' into 2.4.x
Closes gh-26724
2021-06-01 15:38:27 +02:00
Stephane Nicoll 7e4defbcba Properly guard LogbackLoggingSystem
Previously, LoggingSystem#get would chose Logback by the sole presence
of a class in logback-core, with the assumption that logback-classic is
also on the classpath. An app that only had the former would therefore
fail.

This commit updates the condition to check for a class in
logback-classic instead.

Closes gh-26711
2021-06-01 15:35:22 +02:00
Phillip Webb 42865daca9 Merge branch '2.4.x' 2021-05-27 11:49:42 -07:00
Phillip Webb 8661f74f2e Revert "Test optional directories without sub-directories"
This reverts commit 3f858ed8a4
since the test already existed.
2021-05-27 11:48:58 -07:00
Phillip Webb 91eb37dd84 Merge branch '2.4.x'
Closes gh-26679
2021-05-26 21:33:18 -07:00
Phillip Webb 3f858ed8a4 Test optional directories without sub-directories
Add an additional test to ensure that optional wildcard
directory patterns do not fail.

See gh-26677
2021-05-26 21:31:14 -07:00
izeye 38b9a833bd Fix "Allow optional directories without sub-directories"
Fix the update to `resolvePatternEmptyDirectories` introduced in
commit 01dd68e29e which was incorrectly checking `isOptional`.

See gh-26677
2021-05-26 21:19:05 -07:00
Phillip Webb 1a10162777 Change state change logging to DEBUG
Update `ApplicationAvailabilityBean` so that state change logging is
at DEBUG rather than INFO.

Fixes gh-26624
2021-05-26 16:31:35 -07:00
Phillip Webb 78ac7b3861 Polish 2021-05-26 16:19:26 -07:00
Phillip Webb b6d31fb6a1 Use correct type for deriveFromProperties
Fix `DataSourceBuilder` so that the type used to access `deriveFrom`
properties is based on the actual instance type rather than the
user-defined type which could have been changed.

Fixes gh-26644
2021-05-26 15:55:10 -07:00
Scott Frederick eed620fc80 Allow `driverClassName` to be optional
Update `DataSourceBuilder` so that the `driverClassName` may be optional
and silently ignored if it set but the underlying type does not have
a getter/setter.

This restores Spring Boot 2.4 behavior.

Fixes gh-26631

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-05-26 15:52:32 -07:00
Scott Frederick c679b4ccd6 Don't attempt to set null values
Update `DataSourceBuilder` so that setters are not longer called for
`null` values. This restores Spring Boot 2.4 behavior.

Fixes gh-26633

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-05-26 15:52:27 -07:00
Scott Frederick a31e976ec6 Support fallback URL properties
Update `DataSourceBuilder` so that the url property attempts both
`getUrl()` / `setUrl(...)` and `getURL()`/`setURL(...)`.

Fixes gh-26647

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-05-26 15:52:18 -07:00
Scott Frederick 7d6093680d Polish 2021-05-26 15:51:30 -07:00
Phillip Webb 249c675fff Merge branch '2.4.x'
Closes gh-26672
2021-05-25 19:37:14 -07:00
Andy Wilkinson 01dd68e29e Allow optional directories without sub-directories
Update `StandardConfigDataLocationResolver` so that directory resources
are only required when the location is not optional.

Closes gh-26627

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-05-25 19:36:50 -07:00
Stephane Nicoll 3c6bf14c16 Polish 2021-05-25 16:46:05 +02:00
Stephane Nicoll d5b41e288f Merge branch '2.4.x'
Closes gh-26654
2021-05-25 10:37:49 +02:00
Stephane Nicoll 9ff372c915 Merge branch '2.3.x' into 2.4.x
Closes gh-26653
2021-05-25 10:37:40 +02:00
Stephane Nicoll b5ebf836e3 Document spring.profiles.default
Closes gh-26592
2021-05-25 10:32:59 +02:00
Madhura Bhave 110c36e607 Merge branch '2.4.x' into main
Closes gh-26610
2021-05-19 13:21:39 -07:00
Madhura Bhave 80610fa250 Restore order of additional and active profiles
This commit restores the order of additional and active profiles
so that active profiles now take precedence.

Fixes gh-26189
2021-05-19 13:21:03 -07:00
Andy Wilkinson 879f362c29 Merge branch '2.4.x'
Closes gh-26608
2021-05-19 19:04:45 +01:00
Andy Wilkinson 64e76badc2 Merge branch '2.3.x' into 2.4.x
Closes gh-26607
2021-05-19 19:03:12 +01:00
Andy Wilkinson b6e860b2d4 Prevent Jetty from delaying shutdown beyond grace period
Fixes gh-22689
2021-05-19 19:02:24 +01:00