Commit Graph

2685 Commits

Author SHA1 Message Date
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
Andy Wilkinson 66d087877d Merge branch '2.4.x'
Closes gh-26606
2021-05-19 16:46:27 +01:00
Andy Wilkinson 6874c42d3c Merge branch '2.3.x' into 2.4.x
Closes gh-26605
2021-05-19 16:46:09 +01:00
Andy Wilkinson 2a89b11df3 Exclude SmartInitializingSingletones from lazy initialization
Fixes gh-26470
2021-05-19 16:26:48 +01:00
Phillip Webb 5c28f8f6a8 Merge branch '2.4.x'
Closes gh-26585
2021-05-17 21:35:04 -07:00
Phillip Webb 0e3ef4071e Allow optional ConfigDataLocationResolver results
Update `ConfigData` so that it signal if is considered optional. This
update allows `ConfigDataLocationResolvers` to return results that
behave in the same way as `optional:` prefixed locations without the
user themselves needing to prefix the location string.

Closes gh-25894
2021-05-17 21:31:58 -07:00
Phillip Webb ba0fe1edbd Merge branch '2.4.x'
Closes gh-26581
Closes gh-26582
Closes gh-26583
2021-05-17 16:28:52 -07:00
Madhura Bhave c45bb2bd95 Handle empty locations from patterns
Update `StandardConfigDataLocationResolver` to deal with patterns when
resolving empty directories. This update also fixes the handling of
mandatory pattern locations which would previously throw an exception.

The error message returned when a location with a pattern does not
contain any subdirectories has also been improved.

Fixes gh-26468
Fixes gh-26577
Fixes gh-26415
2021-05-17 16:23:46 -07:00
Phillip Webb 2bbad94910 Restore hasProgrammaticallySetProfiles code
Restore code lost on merge.

See gh-26580
2021-05-17 15:34:45 -07:00
Phillip Webb 634d27679a Merge branch '2.4.x'
Closes gh-26580
2021-05-17 13:30:33 -07:00
Madhura Bhave cfa26735d2 Merge programmatically set active profiles
Update `Profiles` so that any profiles set programmatically on the
`Environment` are merged with `spring.profiles.active` properties.

Fixes gh-26151

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-05-17 13:29:12 -07:00
Stephane Nicoll e9174c1e3d Update copyright year of changed files
See gh-26478
2021-05-17 16:08:20 +02:00
weixsun 935199b6ba Polish AbstractServletWebServerFactory
See gh-26478
2021-05-17 16:08:19 +02:00
Andy Wilkinson d41fa13463 Merge branch '2.4.x'
Closes gh-26575
2021-05-17 14:39:35 +01:00
Andy Wilkinson 4eab9476a6 Polish "Detect use of spring.profiles.include as a YAML list"
See gh-26205
2021-05-17 14:13:29 +01:00
ChangYong 80ad6385f1 Detect use of spring.profiles.include as a YAML list
See gh-26205
2021-05-17 14:04:51 +01:00
Andy Wilkinson 4517f6057e Merge branch '2.4.x'
Closes gh-26573
2021-05-17 13:50:13 +01:00
Andy Wilkinson 1d5abf5af7 Merge branch '2.3.x' into 2.4.x
Closes gh-26572
2021-05-17 13:49:25 +01:00
Andy Wilkinson eecb7dd101 Remove stale jboss-transaction-spi dependencies
Closes gh-26569
2021-05-17 13:49:16 +01:00
Andy Wilkinson d3e8d1533f Upgrade to R2DBC Bom Arabba-SR10
Closes gh-26563
2021-05-17 13:39:58 +01:00
Stephane Nicoll d3c817b7ba Polish "Remove unnecessary throws declaration in tests"
See gh-26441
2021-05-17 09:36:53 +02:00
weixsun 8a2be288a3 Remove unnecessary throws declaration in tests
See gh-26441
2021-05-17 09:31:51 +02:00
Stephane Nicoll 691bbcfdfd Update copyright year of changed files
See gh-26448
2021-05-16 15:29:48 +02:00
weixsun d115361980 Remove redundant suppression
See gh-26448
2021-05-16 15:10:48 +02:00
weixsun aa8323f915 Remove unused imports
See gh-26477
2021-05-16 15:03:36 +02:00
Andy Wilkinson a3d68e29c2 Merge branch '2.4.x'
Closes gh-26463
2021-05-14 13:45:46 +01:00
Andy Wilkinson 9f279e0e96 Merge branch '2.3.x' into 2.4.x
Closes gh-26462
2021-05-14 13:45:29 +01:00
Andy Wilkinson 5984d4ee2b Index @ConfigurationProperties so they can be found by scanning
Previously, @ConfigurationProperties was not annotated with @Indexed.
This meant that @ConfigurationPropertiesScan would not be able to
find them when the underlying
ClassPathScanningCandidateComponentProvider is using a
CandidateComponentsIndex.

This commit annotated @ConfigurationProperties with @Indexed so that
they can be found by index-based scanning.

Fixes gh-26459
2021-05-14 13:41:24 +01:00
Phillip Webb 83668f96af Merge branch '2.4.x'
Closes gh-26458
2021-05-13 23:38:41 -07:00
Phillip Webb 73131e99da Make BufferingApplicationStartup thread safe
Update `BufferingApplicationStartup` to use thread safe data structures.

Prior to this commit, it was possible for calls from different threads
(for example due to request scope beans) to cause a
NoSuchElementException to be thrown.

Closes gh-25792
2021-05-13 23:35:36 -07:00
Andy Wilkinson 89b5ece9b4 Use resource loader's class loader in config loading
Previously, classes involved in config loading used a variety of
potentially different class loaders when calling SpringFactoriesLoader.
Some classes would use their own class loader and others would use null
which results in SpringFactoriesLoader's class loader being used.

This commit updates the config loading classes to consistently use the
resource loader's class loader.

Fixes gh-26126
2021-05-13 13:25:47 +01:00
Madhura Bhave eff024b0ce Polish "Process additional profiles before config files processing"
See gh-25817
2021-05-11 15:04:34 -07:00
nguyensach 97fd9a7c77 Process additional profiles before config files processing
Additional profiles were being processed after config file processing
when legacy processing was used.
This commit also restores the order in which additional profiles are added
when legacy processing is used.
Active profiles take precedence over additional profiles.

See gh-25817
2021-05-11 15:03:36 -07:00
Madhura Bhave 38ef6b5644 Merge pull request #25817 from nguyensach
* pr/25817:
  Polish "Process additional profiles before config files processing"
  Process additional profiles before config files processing

Closes gh-25817
2021-05-11 14:46:12 -07:00
Madhura Bhave 2e1b20ce2b Polish "Process additional profiles before config files processing"
See gh-25817
2021-05-11 13:06:46 -07:00
nguyensach 6f266145c7 Process additional profiles before config files processing
Additional profiles were being processed after config file processing
when legacy processing was used.
This commit also restores the order in which additional profiles are added
when legacy processing is used.
Active profiles take precedence over additional profiles.

See gh-25817
2021-05-11 13:05:48 -07:00
Phillip Webb ba1e5fb5e8 Merge branch '2.4.x'
Closes gh-26402
2021-05-06 19:50:52 -07:00
Phillip Webb efad44be43 Refine mandatory location checking logic
Update `ConfigDataEnvironment.checkMandatoryLocations` to use the
actual locations that were imported, including those that were skipped
because the related `ConfigDataResource` had already been imported by a
different location.

Prior to this commit, any location that was skipped because it had
already been imported would throw a `ConfigDataNotFoundException`.

Closes gh-26147

Co-authored-by: Scott Frederick <sfrederick@vmware.com>
Co-authored-by: Madhura Bhave <mbhave@vmware.com>
2021-05-06 19:50:41 -07:00
Phillip Webb 777abc4aac Merge branch '2.4.x'
Closes gh-26401
2021-05-06 19:50:17 -07:00
Phillip Webb fef62f784a Import profile specific files in correct order
Update `StandardConfigDataLoader` to mark profile specific files with
`Option.PROFILE` so that they are added in the correct order. This is
a variation of the same issue described in commit 5774ea3f0c.

Closes gh-26400

Co-authored-by: Scott Frederick <sfrederick@vmware.com>
Co-authored-by: Madhura Bhave <mbhave@vmware.com>
2021-05-06 19:43:40 -07:00
Scott Frederick 922517c0e5 Polish 2021-05-06 19:43:31 -07:00
Scott Frederick 0893df4a01 Merge branch '2.4.x'
Closes gh-26346
2021-05-03 14:53:41 -05:00
Scott Frederick dbee0cf9f1 Ignore empty values in config location properties
This commit updates config data property binding to ignore empty
elements in `spring.config.location` and `spring.config.import`
property values when a value is a comma-delimited string
representing a collection.

Fixes gh-26342
2021-05-03 14:52:22 -05:00
Stephane Nicoll 3475e01cda Merge branch '2.4.x'
Closes gh-26323
2021-04-30 13:32:56 +02:00
Stephane Nicoll 4ccce2a74f Merge branch '2.3.x' into 2.4.x
Closes gh-26322
2021-04-30 13:32:40 +02:00
Stephane Nicoll a6e59b357f Polish "Improve failure analysis with a single bean cycle"
See gh-26292
2021-04-30 13:30:58 +02:00
Roman Zabaluev 044c902a8c Improve failure analysis with a single bean cycle
See gh-26292
2021-04-30 13:18:13 +02:00
Stephane Nicoll 4febe6485c Merge branch '2.4.x'
Closes gh-26318
2021-04-30 08:53:31 +02:00
Stephane Nicoll 63d486158d Merge branch '2.3.x' into 2.4.x
Closes gh-26317
2021-04-30 08:53:20 +02:00
Stephane Nicoll 3f528bb0eb Mark SpringBootConfiguration as Indexed
Previously, users of the components.index could not use the index in
scenario where Spring Boot needs to locate the SpringBootConfiguration
to use to bootstrap the test context, as AnnotatedClassFinder scans
the classpath for that stereotype specifically and that requires a
dedicated entry for it.

This commit makes sure that a SpringBootConfiguration-annotated type has
a dedicated entry in the components index.

Closes gh-26308
2021-04-30 08:47:45 +02:00
Andy Wilkinson 31b650093d Merge branch '2.4.x'
Closes gh-26251
2021-04-27 11:56:48 +01:00
Andy Wilkinson ffc06e1e30 Merge branch '2.3.x' into 2.4.x
Closes gh-26250
2021-04-27 11:51:29 +01:00
Andy Wilkinson 715c4febf9 Update maformed address to one that should fail on CI
Closes gh-26247
2021-04-27 11:50:52 +01:00
Phillip Webb 1e0a3a946d Fix binding random properties test
See gh-26201
2021-04-26 17:36:58 -07:00
Phillip Webb ba5b36d733 Restore support for binding random properties
Revert 0588e989af so that `@ConfigurationProperties` can again be
bound using values from the `RandomValuePropertySource`.

Fixes gh-26201
2021-04-26 15:42:15 -07:00
Stephane Nicoll 3ca6ed6246 Polish
Closes gh-26190
2021-04-21 17:20:22 +02:00
Stephane Nicoll 55b9fc12c7 Merge branch '2.4.x'
Closes gh-26165
2021-04-20 10:23:57 +02:00
Stephane Nicoll 52543b84c1 Fix sourceType for spring.profiles.include
Closes gh-26163
2021-04-20 10:23:42 +02:00
Stephane Nicoll cf5334da35 Merge branch '2.4.x'
Closes gh-26164
2021-04-20 10:22:55 +02:00
Stephane Nicoll 2bd4ccce8a Document spring.profiles.group in configuration metadata
Closes gh-26127
2021-04-20 10:22:43 +02:00
izeye e53453c69c Fix broken assertions in tests
This commit also restores the HTTP response body
assertion that has been dropped in 5873ddd.

See gh-26162
2021-04-20 10:02:26 +02:00
Andy Wilkinson 177152e007 Merge branch '2.4.x'
Closes gh-26155
2021-04-19 10:24:25 +01:00
Andy Wilkinson 0c30a5930d Polish "Use ConfigDataLocationResolvers' class loader to load resolver names"
See gh-26149
2021-04-19 10:23:27 +01:00
Sriram 4268f8da84 Use ConfigDataLocationResolvers' class loader to load resolver names
See gh-26149
2021-04-19 10:06:07 +01:00
Stephane Nicoll bac101647a Polish contribution
See gh-25532
2021-04-16 09:29:48 +02:00
katielevy1 bd9dd9d5eb Polish KotlinConstructorParametersBinderTests
See gh-25532
2021-04-16 09:22:45 +02:00
Phillip Webb e1ad2cdab3 Fix Windows build failures
See gh-23098
2021-04-15 18:31:01 -07:00
Phillip Webb beaf03a008 Update copyright year of changed files 2021-04-15 12:22:48 -07:00
Phillip Webb 238d0fed71 Improve Log4J log level reset support
Update `Log4J2LoggingSystem` so that call to `setLevel` with a `null`
level with remove the logger if it was previously configured by a
`LoggingSystem` call.

To track which loggers have been configured by us, and which have been
configure directly by the user, a custom `LoggerConfig` subclass is
used. We'll only remove `LevelSetLoggerConfig` classes, for any others
we'll call `setLevel(null)` on the config.

Prior to this commit, it was impossible to set then reset a logger
level using the actuator endpoint. This is because Log4J doesn't provide
a way to get the actual configured level. If the `setLevel(null)` has
been applied, then `getLevel()` will return the value of the parent
logger or a default value of `ERROR`.

Fixes gh-24298
2021-04-15 12:22:24 -07:00
Phillip Webb 96823869a9 Merge branch '2.4.x'
Closes gh-26139
2021-04-15 12:02:01 -07:00
Phillip Webb 302d500ee9 Add StandardConfigDataResource.getProfile method
Add a `StandardConfigDataResource.getProfile()` method so that it's
possible to tell the profile used when reading a profile specific
resource.

Fixes gh-25940
2021-04-15 12:01:34 -07:00
izeye e27c85698d Polish
See gh-26135
2021-04-15 16:31:10 +02:00
Phillip Webb 282a8e09d0 Merge branch '2.4.x'
Closes gh-26125
2021-04-14 17:43:12 -07:00
Phillip Webb 5b836f3aee Merge branch '2.3.x' into 2.4.x
Closes gh-26124
2021-04-14 17:42:38 -07:00
Phillip Webb 61ff3c98bf Polish 'Don't detect CloudPlatform when property is set'
See gh-25455
2021-04-14 17:29:30 -07:00
nguyensach 70f44d3a56 Don't detect CloudPlatform when property is set
Update `CloudPlatform.isActive` to back-off from detection when any
`spring.main.cloud-platform` property is set.

See gh-25455
2021-04-14 17:24:37 -07:00
Scott Frederick bf8051cd47 Log ApplicationAvailability state changes
Fixes gh-23098
2021-04-14 13:54:59 -05:00
Phillip Webb 51c3e18011 Support binding with BeanFactory ConversionService
Update `BindConverter` so that multiple `ConverterServices` can be
specified when binding. This change allows `ConversionServiceDeducer`
to add both the `BeanFactory` conversion service as well as a
custom `ApplicationConversionService` when beans annotated with
`@ConfigurationPropertiesBinding` are found.

Fixes gh-26089
2021-04-13 19:13:06 -07:00
Phillip Webb 5581ec0e29 Make getSharedInstance() unmodifiable
Update `ApplicationConversionService.getSharedInstance()` so that the
instance returned is unmodifiable and converters cannot be added or
removed from it.

Closes gh-26088
2021-04-13 19:13:03 -07:00
Andy Wilkinson 4cbe6836a0 Polish o.s.b.liquibase package-info 2021-04-13 20:09:38 +01:00
Andy Wilkinson 5873dddc1c Attempt to stabilise web server tests that use h2c
Apache HttpClient 5.1 doesn't cope with Jetty 10 sending
SETTINGS_ENABLE_CONNECT_PROTOCOL in the settings frame. It also appears
to be unstable when using Undertow, resulting in a failure and
"UT005032: Listener not making progress on framed channel, closing
channel to prevent infinite loop" being logged on the server-side.

Local experimentation suggests that Jetty's HTTP/2 client is more
robust and that it does not trigger the problem with Undertow. It also
fixes the problem with SETTINGS_ENABLE_CONNECT_PROTOCOL when testing
against Jetty 10 so this commit updates the tests to use Jetty's client.

Closes gh-26040
2021-04-13 16:15:49 +01:00
Andy Wilkinson 059c4fbd43 Test JettyReactiveWebServerFactory against Jetty 10
Closes gh-26039
2021-04-13 12:18:29 +01:00
Andy Wilkinson 252d4e98c5 Test that HTTP/1.1 still works when HTTP/2 is enabled
See gh-25856
2021-04-13 11:19:44 +01:00
Andy Wilkinson 74b91b78fe Temporarily disable h2c tests with Jetty 10
Closes gh-26038
2021-04-13 10:25:18 +01:00
Andy Wilkinson 713c0fce7c Auto-configure H2C when HTTP/2 is enabled and SSL is disabled 2021-04-12 17:16:14 +01:00
dreis2211 ea55ca9971 Remove unused method parameters
See gh-25986
2021-04-12 08:40:13 +02:00
izeye 4987880afa Polish
See gh-25980
2021-04-12 08:37:02 +02:00
Stephane Nicoll 4290e0792b Start building against Spring Framework 5.3.6 snapshots
See gh-25926
2021-04-09 08:56:37 +02:00
Phillip Webb 7056a95ffc Polish 'Support system-dependent path separators'
See gh-24490
2021-04-08 20:49:02 -07:00
mederel f918a46ea2 Support system-dependent path separators
Update `StandardConfigDataLocationResolver` so that it recognizes
both `/` and `File.separator` suffixes as directories.

Prior to this commit, working with directories on Windows was awkward
since the path separator is `\`. If a directory were specified in the
form `c:\config\`, an exception was raised complaining it did not end
with '/'.

See gh-24490
2021-04-08 20:42:35 -07:00
Phillip Webb 6ad100eae6 Short circuit already covered property sources
Add an alternative `PropertySourcesPropertyResolver` that can short
circuit resolution of properties that are already covered by the
`ConfigurationPropertySourcesPropertySource`.

Prior to this commit, calling `getProperty` or `containsProperty` on an
`Environment` that has `ConfigurationPropertySources` attached could
result in two identical calls to the underlying source. The first call
would be via the adapted source, and the second would be direct. Since
we can now plug-in a custom `PropertySourcesPropertyResolver` to the
`Environment`, we can optimize resolution so that calls happen only
once.

Closes gh-17400
2021-04-08 20:29:54 -07:00
Phillip Webb 1d302f4c63 Add customer Application Environment subclasses
Add custom `ApplicationEnvironment`, `ApplicationServletEnvironment`
and `ApplicationReactiveWebEnvironment` subclasses for use with
`SpringApplication`. The subclasses all disable the resolution of
active and default profiles using properties since this is handled
directly by the `ConfigDataEnvironmentPostProcessor`.

Closes gh-24892
See gh-24890
2021-04-08 20:29:48 -07:00
Phillip Webb d938dd97bf Add with/without methods to ConfigData.Options
Add convenience methods to ConfigData.Options to allow new Options
instances to be created with options excluded or included.

See gh-25766
2021-04-08 13:21:14 -07:00
Stephane Nicoll f1b2db03e0 Start building against Spring Framework 5.3.6 snapshots
See gh-25909
2021-04-08 18:02:03 +02:00
Brian Clozel b4d2207902 Merge branch '2.4.x'
Closes gh-25936
2021-04-08 17:45:42 +02:00
Brian Clozel a0ee0601ef Fix SSL configuration with Reactor Netty
Prior to this commit, the SslServerCustomizer would use a Reactor Netty
API that lets users customize the SSL configuration, but later override
some of the choices with defaults.

This commits moves from the new deprecated Reactor Netty API and instead
uses a new variant that builds the defaults and lets developers override
them if they want to.

Fixes gh-25913
2021-04-08 17:09:31 +02:00
Stephane Nicoll b52902e92a Merge branch '2.4.x'
Closes gh-25923
2021-04-08 10:14:03 +02:00
Stephane Nicoll c6205f10f1 Merge branch '2.3.x' into 2.4.x
Closes gh-25922
2021-04-08 10:13:45 +02:00
Stephane Nicoll 25b7495d8e Polish "Properly close input streams when loading key stores"
See gh-25884
2021-04-08 09:25:03 +02:00
Alex Belyaev 1e3f5c342b Properly close input streams when loading key stores
See gh-25884
2021-04-08 09:21:58 +02:00
Andy Wilkinson 4d31182123 Polish "Add detection of Azure App Service to CloudPlatform"
See gh-25829
2021-04-07 12:34:54 +01:00
Julien Dubois 98a1017ee7 Add detection of Azure App Service to CloudPlatform
See gh-25829
2021-04-07 12:34:49 +01:00
Phillip Webb 807ea1af0d Update copyright year of changed files 2021-04-06 14:59:52 -07:00
Phillip Webb a99f78c62f Merge branch '2.4.x' 2021-04-05 18:19:27 -07:00
Phillip Webb 8a04547454 Fix checkstyle violation
See gh-25766
2021-04-05 18:18:52 -07:00
Phillip Webb c6cd5117d4 Merge branch '2.4.x'
Closes gh-25887
2021-04-05 17:24:02 -07:00
Phillip Webb 5774ea3f0c Support profile specific ConfigData imports
Update the `ConfigData` import support to allow individual property
sources to be imported with a higher precedence than profile specific
imports.

Prior to this commit, imported sources would always have a higher
precedence than the file that imported them, but a lower precedence
than any profile-specific variant of the same file.

For example, given an `application.properties` that imports `myconfig`,
the contributor tree would be as follows:

	ROOT
	 +- `application.properties`
	 |    +- myconfig
	 +- `application-<profile>.properties`

The precedence would be:

	1) `application-<profile>.properties`
	2) myconfig
	3) `application.properties`

This works well for most situations, but can be confusing if import is
for a profile-specific property source. For example:

	ROOT
	 +- `application.properties`
	 |    +- myconfig
	 |    +- myconfig-<profile>
	 +- `application-<profile>.properties`

Results in the order precedence of:

	1) `application-<profile>.properties`
	2) myconfig-<profile>
	3) myconfig
	4) `application.properties`

This means that whilst `myconfig` overrides `application.properties`,
`myconfig-profile` does not override `application-<profile>.properties`.

For this specific situation, the preferable order would be:

	1) myconfig-<profile>
	2) `application-<profile>.properties`
	3) myconfig
	4) `application.properties`

To support this alternative ordering a new `PROFILE_SPECIFIC` config
data option has been added. Additionally, options may now be specified
on a per-source basis by using the `PropertySourceOptions` interface.

Fixes gh-25766
2021-04-05 15:55:03 -07:00
Stephane Nicoll dd916f908f Merge branch '2.4.x'
Closes gh-25880
2021-04-04 11:19:13 +02:00
Stephane Nicoll db3dfffdca Polish contribution
See gh-25875
2021-04-04 11:15:49 +02:00
izeye 852e5778a3 Polish
See gh-25875
2021-04-04 11:12:03 +02:00
Brian Clozel 72a1eb6384 Allow to manually tag request metrics with exceptions
Prior to this commit, some exceptions handled at the controller or
handler function level would:

* not bubble up to the Spring Boot error handling support
* not be tagged as part of the request metrics

This situation is inconsistent because in general, exceptions handled at
the controller level can be considered as expected behavior.
Also, depending on how the exception is handled, the request metrics
might not be tagged with the exception.
This will be reconsidered in gh-23795.

This commit prepares a transition to the new situation. Developers can
now opt-in and set the handled exception as a request attribute. This
well-known attribute will be later read by the metrics support and used
for tagging the request metrics with the exception provided.

This mechanism is automatically used by the error handling support in
Spring Boot.

Closes gh-24028
2021-04-01 21:09:46 +02:00
Andy Wilkinson df4b1ffb0d Merge branch '2.4.x'
Closes gh-25837
2021-03-30 20:42:41 +01:00
Andy Wilkinson 38a4f135a9 Merge branch '2.3.x' into 2.4.x
Closes gh-25836
2021-03-30 20:42:29 +01:00
Andy Wilkinson ca9a619259 Defer processing of zipTree source until execution time
Closes gh-25835
2021-03-30 20:41:46 +01:00
Phillip Webb 8c31d29acf Merge branch '2.4.x' 2021-03-30 09:29:59 -07:00
Phillip Webb a28a3ae090 Merge branch '2.3.x' into 2.4.x 2021-03-30 09:25:46 -07:00
Phillip Webb 9c8a97809d Consistent use of @deprecated since
Restore the patch version number for consistency with `@since`
tags.

See gh-25808
2021-03-30 09:20:30 -07:00
Phillip Webb 44b1751bb4 Merge branch '2.4.x'
Closes gh-25826
2021-03-29 15:48:20 -07:00
Phillip Webb 363f5829d1 Merge branch '2.3.x' into 2.4.x
Closes gh-25825
2021-03-29 15:46:50 -07:00
Phillip Webb 26dd1b9a26 Update deprecations with for removal targets
Update all deprecation tags to include a removal target.

Closes gh-25808
2021-03-29 15:44:58 -07:00
Andy Wilkinson f3c9cc85cb Polish
See gh-25818
2021-03-29 20:39:36 +01:00
Andy Wilkinson 9b65409e23 Generalize database initialization detection and include R2DBC
Closes gh-25818
2021-03-29 20:07:54 +01:00
Andy Wilkinson 9cc7f0b54d Generalize script-based DB initialization and add R2DBC initializer
See gh-24741
2021-03-29 11:51:02 +01:00
Andy Wilkinson eb1200415d Derive a ConnectionFactoryBuilder from an existing ConnectionFactory
Closes gh-25788
2021-03-29 09:17:05 +01:00
Andy Wilkinson 759e5cb5f5 Polish indentation 2021-03-25 09:40:37 +00:00
Phillip Webb 8da82d2d36 Merge branch '2.4.x'
Closes gh-25790
2021-03-24 14:11:34 -07:00
Phillip Webb 35aeae5a4f Deprecate Bootstrapper
Deprecate the `Bootstrapper` interface entirely and provide a
`BootstrapRegistryInitializer` alternative so that people can migrate.

Unfortunately our previous attempt to fix the typo in the `Bootstrapper`
interface didn't provide us a way to remove the deprecated method
without impacting users. It was also problematic for people who were
implementing `Bootstrapper` rather than using a lambda since they needed
to introduce the deprecated method.

We unfortunately can't see a way to fix the original typo without
introducing a new interface.

Fixes gh-25735
2021-03-24 14:10:12 -07:00
Andy Wilkinson e2811ace72 Improve testing of optional schema and data scripts
See gh-25487
2021-03-24 12:33:56 +00:00
Andy Wilkinson 5758a5aa39 Rename DDL/DML script location properties
See gh-25756
2021-03-24 12:20:36 +00:00
Phillip Webb b8fdb442b0 Merge branch '2.4.x' 2021-03-23 13:09:36 -07:00
Phillip Webb 9af6c895c9 Merge branch '2.3.x' into 2.4.x 2021-03-23 13:09:25 -07:00
Phillip Webb 2b591387b8 Restore tomcat-embed TldPatterns
Restore tomcat-embed-core-* and tomcat-embed-logging-* patterns which
were inadvertently removed in commit 0ec8d281ef.

See gh-25764
2021-03-23 13:07:15 -07:00
Phillip Webb 77ddb45704 Merge branch '2.4.x' 2021-03-23 12:53:59 -07:00
Phillip Webb 11a94ee6f0 Merge branch '2.3.x' into 2.4.x 2021-03-23 12:52:07 -07:00
Phillip Webb 82127fdaa3 Update copyright year of changed files 2021-03-23 12:50:49 -07:00
Phillip Webb 985e5a4340 Merge branch '2.4.x'
Closes gh-25771
2021-03-23 12:49:59 -07:00
Phillip Webb 56674b9031 Merge branch '2.3.x' into 2.4.x
Closes gh-25770
2021-03-23 12:48:51 -07:00
Phillip Webb 0ec8d281ef Align TldPatterns with Tomcat default
Update `TldPatterns` to align with the latest default shipped by Tomcat.
This commit also introduces a test to ensure that we will remain aligned
going forwards.

Closes gh-25764
2021-03-23 12:46:27 -07:00
Andy Wilkinson ce3dfc5792 Merge branch '2.4.x'
Closes gh-25767
2021-03-23 13:42:15 +00:00
Stephane Nicoll db782f5013 Add environment prefix support to SpringApplicationBuilder
Closes gh-25740
2021-03-23 14:25:03 +01:00
Andy Wilkinson 33cf8b3bc4 Merge branch '2.3.x' into 2.4.x
Closes gh-25765
2021-03-23 13:06:35 +00:00
Andy Wilkinson bf6f36a783 Apply any root URI to RestTemplate metric's URI tag
Previously, a root URI configured via RestTemplateBuilder's rootUri
method and RootUriTemplateHandler was not taken into account when
generated the URI tag for RestTemplate request metrics.

This commit updates MetricsClientHttpRequestInterceptor to be aware
of RootUriTemplateHandler and capture the URI template once the
root URI has been applied.

Fixes gh-25744
2021-03-23 13:05:54 +00:00
Andy Wilkinson f0a8c02efd Provide a constant for graceful shutdown's smart lifecyle phase
In order to provide a single constant for graceful shutdown's smart
lifecycle, this commit replaces the package-private reactive and
servlet-specific implementations with a single public implementation
that can be used by both web stacks. This new public implementation
provides a constant for its smart lifecycle phase.

Closes gh-24255
2021-03-23 11:11:26 +00:00
Andy Wilkinson 5dee68c925 Move script-based DataSource initializer into spring-boot
Closes gh-25487
Closes gh-25756
2021-03-22 20:14:30 +00:00
Andy Wilkinson fa336bb565 Move DataSource dependency detection into dedicated package
Closes gh-25757
2021-03-22 14:23:14 +00:00
Phillip Webb 663fd8ce5e Update copyright year of changed files 2021-03-18 14:49:52 -07:00
Phillip Webb bb38ee38a6 Fix package tangle and polish prefix support
Polish the prefix support introduced in commit a8592f36d4 and fix a
package tangle between `boot.context.properties.source` and `boot.env`.

The `Prefix` interface has now been moved into a new default method on
`OriginLookup`.

See gh-3450
2021-03-18 14:49:52 -07:00
Phillip Webb 85f1e2c9b6 Refactor DataSourceBuilder and add derivedFrom
Refactor `DataSourceBuilder` to use direct property mappers rather than
the `Binder` and aliases. Supported DataSource types now include two-way
mappers which allows us to both get and set properties in a uniform way.

A new `derivedFrom` factory method has been added which allows a new
`DataSource` to be derived from an existing one. This update is
primarily to allow Flyway and Liquibase migrations to work against a
`@Bean` configured DataSource rather than assuming that the primary
DataSource was always created via auto-configuration.

See gh-25643
2021-03-17 17:00:44 -07:00
Stephane Nicoll 54e7d7f060 Promote ConnectionFactoryBuilder to the "spring-boot" module
Closes gh-25492
2021-03-17 16:26:54 +00:00
Andy Wilkinson 226ee61dea Create exception reporters when needed so they pick up current state
Fixes gh-25691
2021-03-16 16:13:40 +00:00
Stephane Nicoll b860d3892d Simplify JettyWebServer.getLocalPort
Closes gh-24656
2021-03-15 16:25:53 +01:00
Madhura Bhave c4432a81a8 Merge branch '2.4.x'
Closes gh-25615
2021-03-12 14:03:02 -08:00
Madhura Bhave 11649bc1f0 Merge branch '2.3.x' into 2.4.x
Closes gh-25614
2021-03-12 14:02:34 -08:00
Madhura Bhave df1d1dbaa9 Fallback to BeanPropertyBindingResult for unbound property validation
gh-17424 updated `ValidationBindHandler` so that it would
only look at bound values when validating. This commit updates
`ValidationBindHandler` to use Spring Framework's `BeanPropertyBindingResult`.
This means that for fields that are not bound, JavaBean accessor methods can
be used to get the value to validate.

Fixes gh-25356
2021-03-12 13:56:54 -08:00
Andy Wilkinson e2860fee03 Merge branch '2.4.x'
Closes gh-25599
2021-03-11 09:36:00 +00:00
Johnny Lim 90666faf6d Add Javadoc since tag to Bootstrapper.initialize()
See gh-25596
2021-03-11 09:34:57 +00:00
Andy Wilkinson ed72bca6c8 Provide more pluggable way to indicate DataSource init dependencies
Closes gh-17619
Closes gh-25559
2021-03-09 13:55:48 +00:00
Andy Wilkinson f81921c005 Merge branch '2.4.x'
Closes gh-25517
2021-03-05 15:08:53 +00:00
Andy Wilkinson f9ef05f71e Polish "Add Bootstrapper initialize method to fix typo"
See gh-25400
2021-03-05 15:06:51 +00:00
cprayer bee6f41393 Add Bootstrapper initialize method to fix typo
See gh-25400
2021-03-05 15:06:50 +00:00
Stephane Nicoll 76d0a7f8ba Merge branch '2.4.x'
Closes gh-25506
2021-03-05 10:03:42 +01:00
dreis2211 89a44f3da4 Fix some assertions
See gh-25499
2021-03-05 09:56:55 +01:00
Madhura Bhave 9fd6a1e56a Merge branch '2.4.x'
Closes gh-25495
2021-03-04 09:46:26 -08:00
Madhura Bhave 181d0ee932 Merge default property sources
Fixes gh-25408
2021-03-04 09:46:00 -08:00
Stephane Nicoll e1b1580732 Polish "Allow to configure PersistenceUnitPostProcessor"
This commit updates EntityManagerFactoryBuilder so that persistence unit
post processors can be registered and applied when creating an
EntityManagerFactory.

See gh-25443
2021-02-27 11:33:52 +01:00
johnniang c3c83c8a6c Allow to configure PersistenceUnitPostProcessor
This commit updates EntityManagerFactoryBuilder so that persistence unit
post processors can be registered and applied when creating an
EntityManagerFactory.

See gh-25443
2021-02-27 11:33:39 +01:00
Andy Wilkinson 9713bfc765 Enable the logging shutdown hook by default
This commit updates LoggingApplicationListener to register the logging
shutdown hook by default.

The hook is detrimental in a war deployment as it may pin parts of an
application in memory after it has been undeployed. For this reason,
the hook is still disabled by default in war deployments. This is
achieved by setting an attribute on the servlet context in
SpringBootServletInitializer that is then consumed via the Environment
by LoggingApplicationListener.

Closes gh-25046
2021-02-26 14:00:08 +00:00
dreis2211 4b694560eb Ignore empty prefixes in new PrefixedConfigurationPropertySource
See gh-25445
2021-02-26 10:18:03 +00:00
Madhura Bhave a8592f36d4 Add prefix support for property source
We configure the `SystemEnvironmentPropertySource` as a `Prefixed` property
source. When adapting this to a `ConfigurationPropertySource, a
`PrefixedConfigurationPropertySource` will be created for it.
A `PrefixedConfigurationPropertySource` will resolve property
such as `foo.bar` to `my.foo.bar` for a prefix of `my`.

Closes gh-3450
2021-02-25 12:53:34 -08:00
Phillip Webb a1dc107144 Update copyright year of changed files 2021-02-18 16:23:56 -08:00
Stephane Nicoll 548ca63076 Merge branch '2.4.x'
Closes gh-25364
2021-02-18 14:08:23 +01:00
Stephane Nicoll 526474f3b8 Add username alias for Postgres's PGSimpleDataSource
Closes gh-25363
2021-02-18 14:07:05 +01:00
Madhura Bhave 6fa7c6ac21 Merge branch '2.4.x'
Closes gh-25348
2021-02-17 12:45:59 -08:00
Madhura Bhave 00a358b4d3 Throw or warn for invalid config properties with list syntax
Fixes gh-25309
2021-02-17 12:45:37 -08:00
Andy Wilkinson df5f59127a Support Jetty 10
Closes gh-24886
2021-02-17 17:49:59 +00:00
Stephane Nicoll 15375fdf68 Merge branch '2.4.x'
Closes gh-25342
2021-02-17 17:42:56 +01:00
Stephane Nicoll 5d1bb3025b Add username alias for H2's JdbcDataSource
Closes gh-25263
2021-02-17 17:40:34 +01:00
Stephane Nicoll c2b85c1a0e Merge branch '2.4.x'
Closes gh-25313
2021-02-16 13:51:12 +01:00
Stephane Nicoll f6b5964258 Merge branch '2.3.x' into 2.4.x
Closes gh-25312
2021-02-16 13:50:55 +01:00
Stephane Nicoll 0da7822e27 Update copyright of changed files
See gh-25265
2021-02-16 13:50:15 +01:00
melburne 2163c96205 Fix incorrect detection of Amazon Redshift
See gh-25265
2021-02-16 13:50:15 +01:00
Andy Wilkinson 9628df87ff Merge branch '2.4.x'
Closes gh-25304
2021-02-16 10:34:54 +00:00
Andy Wilkinson 55e3ca66e2 Replace native image system property with call to NativeDetector
Closes gh-25303
2021-02-16 10:34:34 +00:00
Stephane Nicoll 9b7581a8ef Polish "Fix database name detection logic for MariaDB"
See gh-25173
2021-02-15 14:24:08 +01:00
anudeepg 053323f58b Fix database name detection logic for MariaDB
See gh-25173
2021-02-15 14:23:26 +01:00
Andy Wilkinson 0a4c26532d Merge branch '2.4.x'
Closes gh-25259
2021-02-12 14:57:18 +00:00
Andy Wilkinson 392be57003 Apply Logback system properties and not just common properties to context
Closes gh-24894
2021-02-12 14:34:31 +00:00
Stephane Nicoll a9a8d3a167 Merge branch '2.4.x'
Closes gh-25137
2021-02-09 09:49:59 +01:00
izeye 63ee99bf75 Polish
See gh-25093
2021-02-09 09:48:35 +01:00
Andy Wilkinson db781a0d84 Merge branch '2.4.x'
See gh-25077
2021-02-02 15:14:18 +00:00
Andy Wilkinson 788a42d694 Merge branch '2.3.x' into 2.4.x
See gh-25076
2021-02-02 15:12:27 +00:00
Andy Wilkinson 67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
2021-02-02 13:03:21 +00:00
Phillip Webb d9f3e89395 Merge branch '2.4.x' 2021-02-01 22:11:17 -08:00
Phillip Webb 230b4ab2eb Merge branch '2.3.x' into 2.4.x 2021-02-01 22:10:52 -08:00
Phillip Webb d8c9b8c329 Merge branch '2.4.x'
Closes gh-25060
2021-01-30 12:35:52 -08:00
Phillip Webb 77478d9f34 Refine CharSequenceToObjectConverter logic
Update `CharSequenceToObjectConverter` so that conversion that would
apply using an `ObjectTo...` converter now favors `toString()` based
conversion.

Prior to this commit, when converting a `CharSequence` to a `Collection`
the `ObjectToCollectionConveter` would be picked instead of the
`StringToCollectionConverter`. This resulted in a `Collection`
containing a single `String` value, rather than the expected list
of values split around ",".

Fixes gh-25057
2021-01-30 12:35:36 -08:00
Phillip Webb 01746453f7 Merge branch '2.4.x' 2021-01-30 12:34:28 -08:00
Phillip Webb dd997cda9c Remove sysout from test 2021-01-30 10:38:02 -08:00
Phillip Webb 5054765fc8 Merge branch '2.4.x'
Closes gh-25031
2021-01-27 14:19:25 -08:00
Phillip Webb 0fcc52ccaf Protect against NPE with Option.IGNORE_IMPORTS
Update `ConfigDataEnvironmentContributor` to deal with the fact that
the `properties` instance can be `null`.

Fixes gh-25029
2021-01-27 14:17:41 -08:00
Phillip Webb d702793ba7 Merge branch '2.4.x'
Closes gh-25030
2021-01-27 14:10:49 -08:00
Phillip Webb 7f32fa6723 Allow 'on-profile' in profile specific files
Restore the ability to use `spring.config.activate.on-profile` or
`spring.profiles` in profile specific files.

Closes gh-24990
2021-01-27 14:07:02 -08:00
Phillip Webb 439344fdd8 Merge branch '2.4.x'
Closes gh-24996
2021-01-25 23:13:38 -08:00
Phillip Webb 1def245a2c Support DeferredLogFactory injection
Update `ConfigDataLoader` and `ConfigDataLocationResolver` to support
`DeferredLogFactory` injection.

Closes gh-24988
2021-01-25 23:13:01 -08:00
Phillip Webb c268f5d418 Skip direct @ConfugurationProperties binding
Add a `BindRestriction` option to `Bindable` which allows direct
property binding to be bypassed. The option is automatically applied
by the `ConfigurationPropertiesBinder`.

Prior to this commit, `@ConfugurationProperties` binding could silently
fail if a direct property existed that could be converted to the
properties class. This can be the case if a single-argument constructor
is available as the `ObjectToObject` converter would kick in.

Closes gh-16038

Co-authored-by: Madhura Bhave <mbhave@pivotal.io>
2021-01-22 16:57:59 -08:00
Andy Wilkinson 5a56f8864f Remove error message attribute instead of blanking it when not included
Closes gh-24712
2021-01-22 14:10:02 +00:00
Andy Wilkinson 1370e8ca97 Merge branch '2.4.x'
Closes gh-24974
2021-01-22 13:32:47 +00:00
Andy Wilkinson 5362633014 Merge branch '2.3.x' into 2.4.x
Closes gh-24973
2021-01-22 13:32:30 +00:00
Andy Wilkinson 0b06ac9938 Use AssertJ's doesNotContainKey
Closes gh-24970
2021-01-22 13:28:41 +00:00
Andy Wilkinson d15ec4cdb4 Upgrade to Liquibase 4.2.2
Closes gh-24952
2021-01-21 09:47:58 +00:00
Phillip Webb b5674173f8 Merge branch '2.4.x'
Closes gh-24893
2021-01-19 18:15:26 -08:00
Phillip Webb 80dbbaf012 Add ConfigData IGNORE_PROFILES support
Add a new `ConfigData.Option` that allows profile properties to be
ignored. This update will allow Spring Cloud Config Server to provide
`ConfigData` that only has profile properties processed on the
server-side.

Closes gh-24890
2021-01-19 18:13:24 -08:00
Andy Wilkinson 743343cf18 Avoid compiler warning that only occurs with Java 8 2021-01-19 13:58:34 +00:00
Andy Wilkinson 535050ad48 Automatically register HttpSessionIdListener's with the servlet context
Closes gh-24879
2021-01-19 11:28:34 +00:00
Stephane Nicoll dcae55a8bc Merge branch '2.4.x'
Closes gh-24861
2021-01-17 17:04:22 +01:00
dreis2211 b8b5e4cebf Fix configuration metadata for logging.charset.* properties
See gh-24851
2021-01-17 17:02:24 +01:00
Stephane Nicoll 1a2a3d6598 Merge branch '2.4.x' 2021-01-15 14:37:25 +01:00
Stephane Nicoll e8ae18ae11 Polish
See gh-24837
2021-01-15 14:36:53 +01:00
Stephane Nicoll 2c2c160579 Remove deprecated code
See gh-24806
2021-01-15 14:14:33 +01:00
Stephane Nicoll a18f01addf Remove bitronix support
See gh-24806
2021-01-15 14:14:27 +01:00
Stephane Nicoll e2033992c7 Merge branch '2.4.x' 2021-01-15 08:25:41 +01:00
Stephane Nicoll 9343633582 Merge branch '2.3.x' into 2.4.x 2021-01-15 08:25:27 +01:00
Stephane Nicoll 9a53865c8f Polish 2021-01-15 08:24:57 +01:00
Phillip Webb 0fd3cd5ed5 Merge branch '2.4.x' 2021-01-14 17:25:22 -08:00