Commit Graph

2413 Commits

Author SHA1 Message Date
izeye
eeefaf4314 Fix Javadoc deprecated since
See gh-26907
2021-06-15 08:23:13 +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