Commit Graph

339 Commits

Author SHA1 Message Date
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
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
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
Stephane Nicoll
e4618cfb8d Delete ErrorProperties.IncludeStacktrace
Closes gh-21286
2020-12-24 10:35:04 +01: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
Andy Wilkinson
a19a565410 Stop registering the default servlet by default
Previously, the default servlet was registered automatically when using
embedded Jetty, Tomcat, or Undertow. However, it is not used by the
majority of applications where Spring MVC's DispatcherServlet will be
the only servlet that's needed. As such configuring the default servlet
was wasting CPU and memory.

This commit changes the default for registering the default servlet to
false. It can be re-enabled by setting
server.servlet.register-default-servlet=true.

Closes gh-22915
2020-09-29 11:52:19 +01:00
Phillip Webb
1ae1436211 Refactor BootstrapRegistry support
Refactor `BootstrapRegistry` support following initial prototype work
with the Spring Cloud team.

This update splits the `BootstrapRegistry` API into `BootstrapRegistry`,
`BootstrapContext` and  `ConfigurableBootstrapContext` interfaces and
moves it to the same package as `SpringApplication`.

A new `Bootstrapper` interface has been introduced that can be added
to the `SpringApplication` to customize the `BootstrapRegistry` before
it's used.

Closes gh-23326
2020-09-17 00:31:00 -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
Andy Wilkinson
19558ecda7 Merge branch '2.3.x' 2020-08-25 16:51:17 +01:00
Andy Wilkinson
d133f228e2 Increase wait times in DevToolsIntegrationTests
See gh-22909
2020-08-25 16:50:56 +01: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
Andy Wilkinson
c9b8a05321 Merge branch '2.3.x' 2020-08-14 15:41:20 +01:00
Andy Wilkinson
3e35fd480f Wait longer for server port and improve diagnostics on timeout
See gh-22909
2020-08-14 15:34:41 +01:00
Andy Wilkinson
147b048a07 Merge branch '2.3.x'
See gh-22909
2020-08-12 13:24:50 +01:00
Andy Wilkinson
2b1bb2f18f Improve diagnostics when remote application does not start as expected
See gh-22909
2020-08-12 13:24:17 +01:00
Andy Wilkinson
5e04e1f4a3 Merge branch '2.3.x'
Closes gh-22888
2020-08-11 14:34:27 +01:00
Andy Wilkinson
1896566bc8 Avoid duplicates with different versions in Devtools' int test deps
Closes gh-22887
2020-08-11 14:33:27 +01:00
Andy Wilkinson
969dd35e45 Upgrade to Mockito 3.4.6
Closes gh-22838
2020-08-10 15:22:03 +01:00
Stephane Nicoll
dac63fc3e5 Polish 2020-08-06 17:35:01 +02:00
Andy Wilkinson
7df49187fa Merge branch '2.3.x'
Closes gh-22738
2020-08-05 09:05:28 +01:00
Andy Wilkinson
94644f3814 Merge branch '2.2.x' into 2.3.x
Closes gh-22737
2020-08-05 09:05:10 +01:00
Andy Wilkinson
2238b0d797 Try to make FileSystemWatcherTests.waitsForQuietPeriod() more robust
Previously, waitsForQuietPeriod would iterate 10 times, touching a new
file and then sleeping for 100ms at it did so. With a quiet period of
200ms, this was intended to result in a single change set containing
10 files. However, the test would fail occasionally as multiple change
sets were detected. The test is multi-threaded and is, therefore, at
the mercy of the scheduler. If the thread that is iterating and
touching the files takes over 200ms to be scheduled – exceeding the
watcher's quiet period – the watcher may detect a change set while the
changes are still being made. Eliminating this possibilty would require
the test to participate in the watcher's synchronization, which would
require some changes to its implementation. Instead, this commit
aims to avoid the problem by sleeping for 1/10 of the time (10ms) and
expecting a single change set of 100 files. The hope is that the much
shorter sleep time will result in the file touching thread being
scheduled well within the 200ms quiet period.

Closes gh-22732
2020-08-05 09:00:49 +01: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
27c458ca26 Merge branch '2.3.x'
Closes gh-22160
2020-06-30 10:53:49 +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
Andy Wilkinson
ca76b60de2 Merge branch '2.3.x'
Closes gh-22021
2020-06-19 08:23:30 +01:00
Andy Wilkinson
136c9b1af8 Merge branch '2.2.x' into 2.3.x
Closes gh-22020
2020-06-19 08:23:15 +01:00