Commit Graph

220 Commits

Author SHA1 Message Date
Andy Wilkinson
22b02a6c6f Merge branch '2.4.x'
Closes gh-25823
2021-03-29 14:39:17 +01:00
Andy Wilkinson
a025f3d252 Merge branch '2.3.x' into 2.4.x
Closes gh-25822
2021-03-29 14:38:38 +01:00
Andy Wilkinson
896f20e1d3 Improve diagnostics of ClassPathFileSystemWatcherTests
Closes gh-25821
2021-03-29 14:37:25 +01:00
Phillip Webb
11a94ee6f0 Merge branch '2.3.x' into 2.4.x 2021-03-23 12:52:07 -07:00
Andy Wilkinson
29ba18afec Merge branch '2.4.x'
Closes gh-25584
Fixes gh-25367 in 2.5.x
2021-03-10 17:13:07 +00:00
Andy Wilkinson
952ac7b8d2 Don't use RestartClassLoader when proxying classes it did not load
Fixes gh-19010
Fixes gh-25367
2021-03-10 17:12:38 +00:00
Phillip Webb
a1dc107144 Update copyright year of changed files 2021-02-18 16:23:56 -08:00
Madhura Bhave
29ab9fd596 Merge branch '2.4.x'
Closes gh-25351
2021-02-17 15:28:34 -08:00
Madhura Bhave
b5e1787641 Make devtools securityFilterChain back-off in presence of WebSecurityConfigurerAdapter
Fixes gh-25147
2021-02-17 15:26:11 -08:00
Stephane Nicoll
ca9b583c7d Merge branch '2.4.x'
Closes gh-25271
2021-02-14 09:37:49 +01:00
Stephane Nicoll
61e9d04c68 Update copyright of changes files
See gh-25266
2021-02-14 09:35:36 +01:00
izeye
f48893def5 Polish 2021-02-14 09:34:30 +01:00
Stephane Nicoll
5017d59d56 Merge branch '2.4.x'
Closes gh-25184
2021-02-11 13:55:42 +01:00
Stephane Nicoll
75fc896321 Avoid Illegal reflective access warnings with devtools
This commit improves RestartClassLoader to use a method introduced in
SmartClassLoader to avoid triggering a warning on Java 11 and later.

See https://github.com/spring-projects/spring-framework/issues/26403

Closes gh-24857
2021-02-11 13:55:10 +01:00
Andy Wilkinson
f2ebf10a4a Merge branch '2.4.x'
Closes gh-24800
2021-01-13 11:14:58 +00:00
Andy Wilkinson
a95a7e3d40 Allow restart to be enabled when CL not named AppClassLoader
Previously, the restart initializer that enables restart when
-Dspring.devtools.restart.enabled=true is set had no effect when the
ClassLoader's name did not contain AppClassLoader. This commit updates
RestartApplicationListener to use the correct RestartInitializer when
the system property has forcibly enabled restart.

When restart is enabled a SilentExitException is thrown and it should be
caught and handled by the SilentExitExceptionHandler. When the
application is invoked via one of the loader's LauncherClasses
reflection is used and this exception becomes wrapped in an
InvocationTargetEception. Previously, this wrapping prevented
SilentExitExceptionHandler from handling the exception. This commit
updates the handler to look for an InvocationTargetException with a
SilentExitException target in addition to continuing to look for a
SilentExitException directly.

Fixes gh-24797
2021-01-13 10:12:12 +00:00
Andy Wilkinson
fb0f27ce2d Move EMFDependsOnPostProcessor into autoconfigure.orm.jpa
Closes gh-24452
2020-12-15 14:20:50 +00:00
Phillip Webb
72d36e0c07 Update copyright year of changed files 2020-12-10 10:46:04 -08:00
dreis2211
faec47d332 Remove System.out.println in DevToolsPropertyDefaultsPostProcessor
See gh-24325
2020-12-03 16:25:03 -08:00
Stephane Nicoll
c86ce27117 Use non deprecated properties to override web resources cache
Closes gh-24203
2020-11-18 17:40:35 +01:00
Andy Wilkinson
6df10842d2 Allow Devtools to be enabled irrespective of the launching ClassLoader
Closes gh-21424
2020-11-12 13:22:40 +00:00
Andy Wilkinson
4c777c6df7 Deprecate classpath logging listener and stop registering by default
Closes gh-23138
2020-11-03 17:21:36 +00:00
Andy Wilkinson
c22e655848 Move spring.resources.* properties to spring.web.resources.*
Closes gh-23917
2020-10-29 16:08:50 +00:00
Andy Wilkinson
9854e3019b Polish 2020-10-27 14:59:10 +00:00
Andy Wilkinson
689d0c8307 Remove skipping of spring-boot-* projects from DevTools restart triggers
Closes gh-23158
2020-10-27 12:09:17 +00:00
Madhura Bhave
0818f27f44 Configure WebSecurity using WebSecurityCustomizer
Replace `WebSecurityConfigurer` and `WebSecurityConfigurerAdapter`
configurations with `WebSecurityCustomizer` or `SecurityFilterChain`
beans.

Closes gh-23421
2020-10-26 23:47:14 -07:00
Phillip Webb
8ccf7ee489 Make file detection more resilient across restarts
Retain file snapshot state across devtools restarts to help prevent
detection failures.

Closes gh-19543
2020-08-31 13:44:43 -07:00
Phillip Webb
2260657781 Add BootstrapRegistry for long lived instances
Add a simple `BootstrapRegistry` that can be used to store and share
object instances across `EnvironmentPostProcessors`. The registry
can be injected into the constructor of any `EnvironmentPostProcessor`.

Registrations can also perform additional actions when the
`ApplicationContext` has been prepared. For example, they could register
the the bootstrap instances as beans so that they become available to
the application.

See gh-22956
2020-08-20 21:45:02 -07:00
Madhura Bhave
bbbbe8e4d2 Make security auto-configs back off when SecurityFilterChain present
Closes gh-22739
2020-08-14 12:24:25 -07:00
Stephane Nicoll
dac63fc3e5 Polish 2020-08-06 17:35:01 +02:00
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