Commit Graph

190 Commits

Author SHA1 Message Date
Phillip Webb 36a6ca6e6e Add EnvironmentPostProcessorsFactory
Update `EnvironmentPostProcessorApplicationListener` so that it can
either use values from `spring.factories` or use a factory interface.

Closes gh-22529
2020-07-23 11:43:02 -07:00
Phillip Webb 3352024b1c Provide ConfigFileApplicationListener replacement
Deprecate `ConfigFileApplicationListener` and provide a replacement
mechanism that supports arbitrary config data imports.

This commit updates the following areas:

- Extract `EnvironmentPostProcessor` invocation logic from the
  `ConfigFileApplicationListener` to new dedicated listener. Also
  providing support for `Log` injection.

- Extract `RandomPropertySource` adding logic from the
  `ConfigFileApplicationListener` to a dedicated class.

- Migrate to the recently introduced `DefaultPropertiesPropertySource`
  class when moving the defaultProperties `PropertySource`

- Replace processing logic with a phased approach to ensure that
  profile enablement happens in a distinct phase and that profiles
  can no longer be activated on an ad-hoc basis.

- Provide a more predictable and logical import order for processing
  `application.properties` and `application.yml` files.

- Add support for a `spring.config.import` property which can be used
  to import additional config data. Also provide a pluggable API
  allowing third-parties to resolve and load locations themselves.

- Add `spring.config.activate.on-profile` support which replaces the
  existing `spring.profiles` property.

- Add `spring.config.activate.on-cloud-platform` support which allows
  a config data document to be active only on a given cloud platform.

- Support a `spring.config.use-legacy-processing` property allowing the
  previous processing logic to be used.

Closes gh-22497

Co-authored-by: Madhura Bhave <mbhave@vmware.com>
2020-07-22 21:02:32 -07:00
Andy Wilkinson 7864a7da52 Polish "Remove redundant bitwise operations"
See gh-22212
2020-07-07 10:37:44 +01:00
XenoAmess de46d4bfd3 Remove redundant bitwise operations
See gh-22212
2020-07-07 10:37:26 +01:00
Andy Wilkinson f86831da9c Use TCCL at time of access for resource loading
Fixes gh-22119
2020-06-30 10:51:13 +01:00
Scott Frederick a30740f8d2 Separate server properties for message and errors
Prior to this commit, there was a property server.error.include-details
that allowed configuration of the message and errors attributes in a
server error response.

This commit separates the control of the message and errors attributes
into two separate properties named server.error.include-message and
server.error.include-binding-errors. When the message attribute is
excluded from a servlet response, the value is changed from a
hard-coded text value to an empty value.

Fixes gh-20505
2020-04-29 17:56:47 -05:00
Phillip Webb ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
2020-04-28 19:20:24 -07:00
Andy Wilkinson dc75ca3942 Avoid capturing TCCL when creating DefaultResourceLoaders
Previously, DefaultResourceLoader instances were created using the
default constructor. This causes the resource loader to capture the
TCCL that was in place at that time. This can lead to a class loader
leak if the resource loader is referenced directly or indirectly from
a static field of a class loaded by a different class loader.

This commit updates the creation of DefaultResourceLoader instances
in main code so that the resource load will use the class loader of
the creating class. In almost all cases this will be the same class
loader as was the thread context class loader that was being captured
so the change in behavior is minimal. Crucially, it will still address
the situation where the TCCL was different.

Note the DevTools' ApplicationContextResourceLoader has been updated
to explicitly use the TCCL. This ensures that it uses the restart
class loader which is required for DevTools to function correctly.

Fixes gh-20900
2020-04-24 13:29:29 +01:00
Stephane Nicoll ddcd1bc7bb Remove metadata for configuration keys that were removed in 2.0
Closes gh-19706
2020-04-23 16:14:13 +02:00
Stephane Nicoll 6c02daf2bc Merge branch '2.2.x'
Closes gh-21098
2020-04-23 14:12:37 +02:00
Stephane Nicoll 311952730e Merge branch '2.1.x' into 2.2.x
Closes gh-21097
2020-04-23 14:07:31 +02:00
Stephane Nicoll 291165f060 Order additional metadata according to lexicographic order
Closes gh-21095
2020-04-23 13:58:49 +02:00
Phillip Webb bf41da5322 Update copyright year of changed files 2020-04-21 18:12:27 -07:00
Scott Frederick 70d4994502 Disable exception details on default error views
Prior to this commit, default error responses included the message
from a handled exception. When the exception was a BindException, the
error responses could also include an errors attribute containing the
details of the binding failure. These details could leak information
about the application.

This commit removes the exception message and binding errors detail
from error responses by default, and introduces a
`server.error.include-details` property that can be used to cause
these details to be included in the response.

Fixes gh-20505
2020-04-16 10:46:36 -05:00
Phillip Webb ce1ae11c26 Merge branch '2.2.x' 2020-03-23 14:14:47 -07:00
Phillip Webb 16b5ea3414 Update copyright year of changed files 2020-03-23 14:13:33 -07:00
Stephane Nicoll f470f27666 Merge branch '2.2.x'
Closes gh-20549
2020-03-17 18:15:19 +01:00
dreis2211 d9171d0afe Use @Configuration(proxyBeanMethods=false) wherever possible
See gh-20541
2020-03-17 17:17:38 +01:00
Andy Wilkinson 4fd8f376dc Merge branch '2.2.x'
Closes gh-20503
2020-03-11 14:02:49 +00:00
Andy Wilkinson 9fbb664db6 Avoid eager init when evaluating DevToolsDataSourceCondition
Previously, DevToolsDataSourceCondition called
getBeanNamesForType(Class) which could trigger unwanted initialization
of lazy init singletons and objects created by FactoryBeans.

This commit updates DevToolsDataSourceCondition to prohibit eager
init when getting the names of the beans of a particular type.

Fixes gh-20430
2020-03-11 14:02:16 +00:00
wycm 916a4743bb Polish
See gh-20419
2020-03-08 17:26:00 +01:00
Stephane Nicoll 5b92151dcb Update copyright of changed file
See gh-20407
2020-03-06 11:26:03 +01:00
wycm 67c2393a6a Polish
See gh-20407
2020-03-06 11:25:16 +01:00
dreis2211 d8e2349e47 Use Supplier variants of Assert
See gh-19864
2020-01-28 15:04:11 +01:00
Stephane Nicoll e044817fe7 Migrate remaining use of ClassLoader.loadClass to Class.forName
Closes gh-19824
2020-01-23 13:15:45 +01:00
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00
Stephane Nicoll 2c1e81adf0 Polish 2019-12-26 10:42:40 +01:00
Madhura Bhave 8ec3ca74e1 Fix loading of devtools yaml files
Fixes gh-19081
2019-11-20 17:30:26 -08:00
Andy Wilkinson 847ec3c0e1 Add missing %s to warning message format string
Closes gh-18710
2019-10-24 10:37:24 +01:00
Phillip Webb 597baf9774 Polish "Optimize logger calls"
See gh-18710
2019-10-23 21:00:05 -07:00
wycm 240b1f9e29 Optimize logger calls
Guard logger calls to ensure that they are only made when the
level is set.

See gh-18710
2019-10-23 20:59:11 -07:00
Phillip Webb 714c9b9804 Polish 2019-10-22 13:12:09 -07:00
Stephane Nicoll 4d5d90847e Merge branch '2.1.x'
Closes gh-18682
2019-10-22 09:41:04 +02:00
wycm 681a94b0d5 Optimize debug level logs
See gh-18604
2019-10-22 09:36:48 +02:00
Kant Leung 2f73e196af Polish
See gh-18534
2019-10-08 07:38:21 -05:00
Andy Wilkinson 078536aded Merge branch '2.1.x'
Closes gh-18502
2019-10-03 15:34:32 +01:00
Andy Wilkinson f42b442ce2 Fix handling of encoded URLs in Class-Path manifest attribute
Fixes gh-18410
2019-10-03 15:30:33 +01:00
Phillip Webb 795303d667 Replace depends-on post processor configurations
Replace `AbstractDependsOnBeanFactoryPostProcessor` `@Configuration`
classes with simple `@Import` component classes.

Closes gh-18382
2019-10-02 21:41:31 -07:00
Phillip Webb 1528b6c2f8 Polish 2019-09-28 22:28:23 -07:00
Phillip Webb 9568777d7d Fix devtools package tangle
Fix package tangle in devtools by relocating `DevToolsEnablementDeducer`
to a new `system` package.

Closes gh-18393
2019-09-28 22:05:07 -07:00
Madhura Bhave 48960c54d1 Drop . prefix from files in .config directory for devtools
Closes gh-18006
2019-09-20 15:01:12 -07:00
rajadilipkolli abcff3a3b3 Use try-with-resources in HttpTunnelPayload
See gh-11779
2019-09-18 17:49:24 +01:00
Stephane Nicoll 81ddebbc27 Merge branch '2.1.x'
Closes gh-18239
2019-09-16 15:12:38 +02:00
Stephane Nicoll 9434cb0e22 Keep a live reference of protocol resolvers rather than copying them
This commit makes sure that any subsequent call on addProtocolResolver
on the context will impact the ResourceLoader implementation that
DevTools sets on the context.

This makes sure that any custom ProtocolResolver that is set later in
the lifecycle is taken into account.

Closes gh-17214
2019-09-16 15:08:40 +02:00
Phillip Webb 877c65c714 Merge branch '2.1.x'
Closes gh-18132
2019-09-04 22:10:28 -07:00
Phillip Webb a0a204ae6a Clarify devtools trigger file documentation
Closes gh-17775
2019-09-04 22:09:33 -07:00
dreis2211 b4350a9d96 Remove unnecessary blank lines
See gh-18089
2019-09-03 08:48:10 +02:00
Madhura Bhave 48b5b6a24c Polish "Added support for devtools YAML configuration"
See gh-17915
2019-08-23 14:37:54 -07:00
HaiTao Zhang 00a3ad0fd1 Added support for devtools YAML configuration
See gh-17915
2019-08-23 14:33:39 -07:00
LiangYong a5746d0a03 Simplify some code
See gh-17893
2019-08-19 07:24:54 +02:00