Commit Graph

581 Commits (4b0437fce5b8bed62d3ab05e059a5d5cb1dcc216)

Author SHA1 Message Date
Andy Wilkinson db781a0d84 Merge branch '2.4.x'
See gh-25077
4 years ago
Andy Wilkinson 788a42d694 Merge branch '2.3.x' into 2.4.x
See gh-25076
4 years ago
Andy Wilkinson 67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
4 years ago
Andy Wilkinson f2ebf10a4a Merge branch '2.4.x'
Closes gh-24800
4 years ago
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
4 years ago
Stephane Nicoll e4618cfb8d Delete ErrorProperties.IncludeStacktrace
Closes gh-21286
4 years ago
Andy Wilkinson fb0f27ce2d Move EMFDependsOnPostProcessor into autoconfigure.orm.jpa
Closes gh-24452
4 years ago
Phillip Webb 72d36e0c07 Update copyright year of changed files 4 years ago
dreis2211 faec47d332 Remove System.out.println in DevToolsPropertyDefaultsPostProcessor
See gh-24325
4 years ago
Stephane Nicoll c86ce27117 Use non deprecated properties to override web resources cache
Closes gh-24203
4 years ago
Andy Wilkinson 6df10842d2 Allow Devtools to be enabled irrespective of the launching ClassLoader
Closes gh-21424
4 years ago
Andy Wilkinson 4c777c6df7 Deprecate classpath logging listener and stop registering by default
Closes gh-23138
4 years ago
Andy Wilkinson c22e655848 Move spring.resources.* properties to spring.web.resources.*
Closes gh-23917
4 years ago
Andy Wilkinson 9854e3019b Polish 4 years ago
Andy Wilkinson 689d0c8307 Remove skipping of spring-boot-* projects from DevTools restart triggers
Closes gh-23158
4 years ago
Madhura Bhave 0818f27f44 Configure WebSecurity using WebSecurityCustomizer
Replace `WebSecurityConfigurer` and `WebSecurityConfigurerAdapter`
configurations with `WebSecurityCustomizer` or `SecurityFilterChain`
beans.

Closes gh-23421
4 years ago
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
4 years ago
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
4 years ago
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
4 years ago
Andy Wilkinson 19558ecda7 Merge branch '2.3.x' 4 years ago
Andy Wilkinson d133f228e2 Increase wait times in DevToolsIntegrationTests
See gh-22909
4 years ago
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
4 years ago
Madhura Bhave bbbbe8e4d2 Make security auto-configs back off when SecurityFilterChain present
Closes gh-22739
4 years ago
Andy Wilkinson c9b8a05321 Merge branch '2.3.x' 4 years ago
Andy Wilkinson 3e35fd480f Wait longer for server port and improve diagnostics on timeout
See gh-22909
4 years ago
Andy Wilkinson 147b048a07 Merge branch '2.3.x'
See gh-22909
4 years ago
Andy Wilkinson 2b1bb2f18f Improve diagnostics when remote application does not start as expected
See gh-22909
4 years ago
Andy Wilkinson 5e04e1f4a3 Merge branch '2.3.x'
Closes gh-22888
4 years ago
Andy Wilkinson 1896566bc8 Avoid duplicates with different versions in Devtools' int test deps
Closes gh-22887
4 years ago
Andy Wilkinson 969dd35e45 Upgrade to Mockito 3.4.6
Closes gh-22838
4 years ago
Stephane Nicoll dac63fc3e5 Polish 4 years ago
Andy Wilkinson 7df49187fa Merge branch '2.3.x'
Closes gh-22738
4 years ago
Andy Wilkinson 94644f3814 Merge branch '2.2.x' into 2.3.x
Closes gh-22737
4 years ago
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
4 years ago
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
4 years ago
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>
4 years ago
Andy Wilkinson 7864a7da52 Polish "Remove redundant bitwise operations"
See gh-22212
4 years ago
XenoAmess de46d4bfd3 Remove redundant bitwise operations
See gh-22212
4 years ago
Andy Wilkinson 27c458ca26 Merge branch '2.3.x'
Closes gh-22160
4 years ago
Andy Wilkinson f86831da9c Use TCCL at time of access for resource loading
Fixes gh-22119
4 years ago
Andy Wilkinson ca76b60de2 Merge branch '2.3.x'
Closes gh-22021
4 years ago
Andy Wilkinson 136c9b1af8 Merge branch '2.2.x' into 2.3.x
Closes gh-22020
4 years ago
Andy Wilkinson 41173f7c40 Polish "Use Awaitility instead of Thread.sleep"
See gh-21988
4 years ago
Tomek Szmytka c13385ea74 Use Awaitility instead of Thread.sleep
See gh-21988
4 years ago
Andy Wilkinson f3220b16fe Merge branch '2.3.x' 4 years ago
Andy Wilkinson 8f7d71ca11 Merge branch '2.2.x' into 2.3.x 4 years ago
Andy Wilkinson 907b64a5eb Remove redundant stop() calls from LiveReloadServerTests 4 years ago
Andy Wilkinson 07fb4b065d Merge branch '2.3.x'
Closes gh-21940
4 years ago
Andy Wilkinson 0de466e06e Require dependency on s-b-dependencies to use its constraints
Previously, Spring Boot's modules published Gradle Module Metadata
(GMM) the declared a platform dependency on spring-boot-dependencies.
This provided versions for each module's own dependencies but also had
they unwanted side-effect of pulling in spring-boot-dependencies
constraints which would influence the version of other dependencies
declared in the same configuration. This was undesirable as users
should be able to opt in to this level of dependency management, either
by using the dependency management plugin or by using Gradle's built-in
support via a platform dependency on spring-boot-dependencies.

This commit reworks how Spring Boot's build uses
spring-boot-dependencies and spring-boot-parent to provide its own
dependency management. Configurations that aren't seen by consumers are
configured to extend a dependencyManagement configuration that has an
enforced platform dependency on spring-boot-parent. This enforces
spring-boot-parent's version constraints on Spring Boot's build without
making them visible to consumers. To ensure that the versions that
Spring Boot has been built against are visible to consumers, the
Maven publication that produces pom files and GMM for the published
modules is configured to use the resolved versions from the module's
runtime classpath.

Fixes gh-21911
4 years ago
Andy Wilkinson 6e68101b9f Upgrade to Postgresql 42.2.13
Closes gh-21859
5 years ago
Andy Wilkinson daeca9f332 Restore Boot 2.2's compile-scoped dependencies
Fixes gh-21507
5 years ago
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
5 years ago
Phillip Webb ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
5 years ago
Stephane Nicoll 85e9f713b0 Update copyright year of changed files
See gh-21007
5 years ago
Johnny Lim 29717423a3 Remove this keyword on member method invocations
See gh-21007
5 years ago
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
5 years ago
Stephane Nicoll ddcd1bc7bb Remove metadata for configuration keys that were removed in 2.0
Closes gh-19706
5 years ago
Stephane Nicoll 6c02daf2bc Merge branch '2.2.x'
Closes gh-21098
5 years ago
Stephane Nicoll 311952730e Merge branch '2.1.x' into 2.2.x
Closes gh-21097
5 years ago
Stephane Nicoll 291165f060 Order additional metadata according to lexicographic order
Closes gh-21095
5 years ago
Phillip Webb bf41da5322 Update copyright year of changed files 5 years ago
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
5 years ago
Phillip Webb ce1ae11c26 Merge branch '2.2.x' 5 years ago
Phillip Webb 16b5ea3414 Update copyright year of changed files 5 years ago
Stephane Nicoll f470f27666 Merge branch '2.2.x'
Closes gh-20549
5 years ago
dreis2211 d9171d0afe Use @Configuration(proxyBeanMethods=false) wherever possible
See gh-20541
5 years ago
Andy Wilkinson 4fd8f376dc Merge branch '2.2.x'
Closes gh-20503
5 years ago
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
5 years ago
wycm 916a4743bb Polish
See gh-20419
5 years ago
Stephane Nicoll 5b92151dcb Update copyright of changed file
See gh-20407
5 years ago
wycm 67c2393a6a Polish
See gh-20407
5 years ago
dreis2211 fac6f08ca3 Use new AssertJ duration assertions
See gh-19985
5 years ago
dreis2211 d8e2349e47 Use Supplier variants of Assert
See gh-19864
5 years ago
Stephane Nicoll e044817fe7 Migrate remaining use of ClassLoader.loadClass to Class.forName
Closes gh-19824
5 years ago
Stephane Nicoll 95be419527 Use Class.forName rather than ClassLoader.loadClass
This commit changes uses of ClassLoader.loadClass to Class.forName for
consistency with what was initiated in #19342 and better compatibility
with GraalVM.

Closes gh-19824
5 years ago
Phillip Webb e0013454b5 Use parentheses when declaring dependencies
Update all dependencies declarations to use the form `scope(reference)`
rather than `scope reference`.

Prior to this commit we declared dependencies without parentheses unless
we were forced to add them due to an `exclude`.
5 years ago
Phillip Webb 0209cd3e4c Polish quote form used in Gradle scripts
Replace Gradle single quote strings with the double quote form
whenever possible. The change helps to being consistency to the
dependencies section where mostly single quotes were used, but
occasionally double quotes were required due to `${}` references.
5 years ago
Phillip Webb bfd2ca7fd9 Polish Gradle expression references
Expand all expression `$` references to the full `${...}` form.
5 years ago
Andy Wilkinson 714a187d8f Rework dep mgmt again to avoid consumers picking up strict constraints
This paves the way for publishing Gradle module metadata once the
problem caused by snapshot versions and our two-step publication
process has been addressed.

See gh-19609
5 years ago
Andy Wilkinson aefe52e4d0 Revert "Rework dep management to avoid consumers picking up strict constraints"
This reverts commit b34a311d02 as,
having disabled the publishing of Gradle's module metadata (4f75ab5),
the changes are no longer needed.

See gh-19609
5 years ago
Phillip Webb 862462b791 Update copyright year of changed files 5 years ago
Andy Wilkinson b34a311d02 Rework dep management to avoid consumers picking up strict constraints
Previously, enforcedPlatform dependencies were using to pull in the
constraints defined in spring-boot-dependencies and
spring-boot-parent and applied them strictly so that the constrained
version had to be used. This worked as intended in Spring Boot's own
build but incorrectly enforced those same strict version requirements
on external consumers of Spring Boot's modules.

This commit reworks how Spring Boot defines its internal dependency
management so that platform dependencies are exposed to external
consumers while enforced platform dependencies are using internally.

See gh-19609
5 years ago
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
5 years ago
Stephane Nicoll 2c1e81adf0 Polish 5 years ago
Madhura Bhave 8ec3ca74e1 Fix loading of devtools yaml files
Fixes gh-19081
5 years ago
Andy Wilkinson 847ec3c0e1 Add missing %s to warning message format string
Closes gh-18710
5 years ago
Phillip Webb 597baf9774 Polish "Optimize logger calls"
See gh-18710
5 years ago
wycm 240b1f9e29 Optimize logger calls
Guard logger calls to ensure that they are only made when the
level is set.

See gh-18710
5 years ago
dreis2211 8ecdf919f8 Fix Mockito deprecations
See gh-18689
5 years ago
Phillip Webb 714c9b9804 Polish 5 years ago
Stephane Nicoll 4d5d90847e Merge branch '2.1.x'
Closes gh-18682
5 years ago
wycm 681a94b0d5 Optimize debug level logs
See gh-18604
5 years ago
Kant Leung 2f73e196af Polish
See gh-18534
5 years ago
Andy Wilkinson 078536aded Merge branch '2.1.x'
Closes gh-18502
5 years ago
Andy Wilkinson f42b442ce2 Fix handling of encoded URLs in Class-Path manifest attribute
Fixes gh-18410
5 years ago
Phillip Webb 795303d667 Replace depends-on post processor configurations
Replace `AbstractDependsOnBeanFactoryPostProcessor` `@Configuration`
classes with simple `@Import` component classes.

Closes gh-18382
5 years ago
Andy Wilkinson 46c30d6bb0 Merge branch '2.1.x'
Closes gh-18476
5 years ago
Andy Wilkinson 3d4157ad6d Correct SCM URLs in published poms
Previously, Maven's default behaviour was relied up which resulted
in the artifact ID being appended to each URL as it was inherited.
This behaviour can only be disabled in Maven 3.6 and later, a version
that we cannot use due to an incompatibility with the Flatten Plugin.

This commit works around Maven's default behaviour by defining
properties for the SCM URL, connection, and developer connection and
then explicitly defining the settings in each pom using these
properties. The explicit definition of the properties in each pom
prevents them being inherited from the parent, thereby disabling the
unwanted appending of the artifact ID to the URL.

Fixes gh-18328
5 years ago
Phillip Webb 1528b6c2f8 Polish 5 years ago
Phillip Webb 9568777d7d Fix devtools package tangle
Fix package tangle in devtools by relocating `DevToolsEnablementDeducer`
to a new `system` package.

Closes gh-18393
5 years ago
Andy Wilkinson 35ad5cd011 Fix intermittent failure of inMemoryDerbyIsShutdown 5 years ago
Madhura Bhave 7978c3d75c Polish 5 years ago
Madhura Bhave 48960c54d1 Drop . prefix from files in .config directory for devtools
Closes gh-18006
5 years ago
rajadilipkolli abcff3a3b3 Use try-with-resources in HttpTunnelPayload
See gh-11779
5 years ago
Stephane Nicoll 81ddebbc27 Merge branch '2.1.x'
Closes gh-18239
5 years ago
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
5 years ago
Andy Wilkinson 2e6f15b6f3 Fix intermittent failure of inMemoryDerbyIsShutdown 5 years ago
Andy Wilkinson 1b237de5f5 Use Awaitility in our own tests
Closes gh-18227
5 years ago
Phillip Webb 877c65c714 Merge branch '2.1.x'
Closes gh-18132
5 years ago
Phillip Webb a0a204ae6a Clarify devtools trigger file documentation
Closes gh-17775
5 years ago
dreis2211 b4350a9d96 Remove unnecessary blank lines
See gh-18089
5 years ago
Madhura Bhave 48b5b6a24c Polish "Added support for devtools YAML configuration"
See gh-17915
5 years ago
HaiTao Zhang 00a3ad0fd1 Added support for devtools YAML configuration
See gh-17915
5 years ago
LiangYong a5746d0a03 Simplify some code
See gh-17893
5 years ago
dreis2211 d4affd7f85 Use hasSize() assertion in favor of length checks
See gh-17874
5 years ago
Madhura Bhave dab815af40 Simplify mockmvc security in tests following upstream changes
SecurityMockMvcConfigurer now honors filter order so we can use that instead
of manually adding the filter.
5 years ago
Madhura Bhave 09b690b3c9 Fix tests 5 years ago
Madhura Bhave 186530478c Bypass Spring security authentication for remote devtools endpoint
Closes gh-17878
5 years ago
lijuny b26f887a2e Simplify some code
See gh-17852
5 years ago
周武栋 6fab5b591b Simplify some code
See gh-17837
5 years ago
Phillip Webb 8bc780762a Merge branch '2.1.x' 5 years ago
Phillip Webb fb1dd8fe93 Merge branch '2.0.x' into 2.1.x 5 years ago
Phillip Webb 913e831f4e Merge '1.5.x' into 2.0.x 5 years ago
Phillip Webb a9ba7080ce Merge branch '2.1.x' 5 years ago
Phillip Webb eff1147ccc Rename classpath runner package
Remove `runner` since we're no longer tied to JUnit 4.

See gh-17491
5 years ago
Phillip Webb 1117fdb2b3 Make ModifiedClassPathExtension package private
Meta-annotate `ClassPathExclusions` and `ClassPathOverrides` with
so that the `ModifiedClassPathExtension` no longer needs to be
used directly.

See gh-17491
5 years ago
dreis2211 0f0278e69b Migrate ModifiedClassPath tests to JUnit 5
Migrate the remaining JUnit 4 tests to JUnit 5, making use of the
new `ModifiedClassPathExtension`.

See gh-17491
5 years ago
Phillip Webb 01933f9b06 Merge previously split strings
Merge some string lines that were previously split because of the
90 chars wide formatting.
5 years ago
Phillip Webb c3816bfe7b Polish output capture names 5 years ago
Johnny Lim 426ef749db Polish
See gh-17413
5 years ago
Andy Wilkinson 0d124e9857 Remove use of field injection from spring-boot-devtools
Closes gh-17442
5 years ago
Phillip Webb a66c4d3096 Unify method visibility of private classes
Apply checkstyle rule to ensure that private and package private
classes do not have unnecessary public methods. Test classes have
also been unified as much as possible to use default scoped
inner-classes.

Closes gh-7316
5 years ago
Phillip Webb 605599138e Merge branch '2.1.x' 5 years ago
Phillip Webb 92bff3c328 Merge branch '2.0.x' into 2.1.x 5 years ago
Phillip Webb cfeb0239b7 Merge branch '1.5.x' into 2.0.x 5 years ago
Stephane Nicoll e560b7f6ba Remove public modifier on JUnit5 lifecycle methods
See gh-17292
5 years ago
Andy Wilkinson cffc870fd6 Fix test failures on Windows
Since the move to JUnit 5, a number of tests were failing on Windows.
The majority were failing due to open file handles preventing the
clean up of the tests' temporary directory. This commit addresses
these failures by updating the tests to close JarFiles, InputStreams,
OutputStreams etc.

A change has also been made to CachingOperationInvokerTests to make
a flakey test more robust. Due to System.currentTimeMillis() being
less precise on Windows than it is on *nix platforms, the test could
fail as it would not sleep for long enough for the TTL period to have
expired.
6 years ago
Andy Wilkinson 38552065e8 Merge branch '2.1.x'
Closes gh-17114
6 years ago
Andy Wilkinson 7103eab2e6 Close JarFiles when looking for Class-Path manifest entries
Fixes gh-17095
6 years ago
Andy Wilkinson c11f25bf8b Merge branch '2.1.x'
Closes gh-17104
6 years ago
Andy Wilkinson 95d0e26c35 Fix command DevTools uses to shut down in-memory Derby DB
Closes gh-17099
6 years ago
Phillip Webb 266d6334b2 Fix checkstyle RedundantModifier test violations 6 years ago
Andy Wilkinson b18fffaf14 Move tests to JUnit 5 wherever possible 6 years ago
Andy Wilkinson aef92b9295 Merge branch '2.1.x'
Closes gh-17079
6 years ago
Andy Wilkinson 24925c3dae Merge branch '2.0.x' into 2.1.x
Closes gh-17078
6 years ago
Andy Wilkinson c6c139d980 Merge branch '1.5.x' into 2.0.x 6 years ago
Phillip Webb d306b31ce9 Merge branch '2.1.x' 6 years ago
Phillip Webb ccfbd03482 Merge branch '2.0.x' into 2.1.x 6 years ago
Phillip Webb 5fba43aa31 Merge branch '1.5.x' into 2.0.x 6 years ago
Stephane Nicoll f30e29a4ad Rename spring.reactor.stacktrace-mode.enabled property
Closes gh-16537
6 years ago
Andy Wilkinson 0644a79401 Repackage output capture and always use extension declaratively
Closes gh-17029
6 years ago
Andy Wilkinson 3432044997 Use deferred logging to report Class-Path manifest attribute problems
Closes gh-16883
6 years ago
Johnny Lim 7aaad7e5f4 Fix assertion for outcomeWhenDevtoolsShouldBeEnabledIsTrueShouldMatch()
Closes gh-16815
6 years ago
Phillip Webb 3a9ca5fa30 Update copyright header of changed files 6 years ago
Brian Clozel 08cb8368ef Delete Devtools cache reset support for HATEOAS
As of spring-projects/spring-hateoas#854, Spring HATEOAS is not relying
on Objenesis anymore and removed the cache that was being used for it.

This commit removes the support for clearing that cache when running an
application with Devtools enabled.

See gh-16833
6 years ago
Andy Wilkinson ef11af8676 Polish "Remove unnecessary latches in tests"
Closes gh-16733
6 years ago
Johnny Lim 0baceb4aa4 Remove unnecessary latches in tests
See gh-16733
6 years ago
Johnny Lim 7c8bf48ebb Polish DevToolsEnablementDeducer and OnEnabledDevToolsCondition
See gh-16732
6 years ago
Phillip Webb 17aaf26590 Use consistent javadoc style for annotation links
Closes gh-13920
6 years ago
Madhura Bhave ac2b0093c7 Disable DevTools' post-processors and auto-config when running tests
Closes gh-5307
6 years ago
Madhura Bhave 3c203e9b0d Update devtools to use @Lazy(false)
Fixes gh-16184
6 years ago
Stephane Nicoll c432288ed1 Migrate ApplicationContext to common hierarchy
This commit migrates `AnnotationConfigReactiveWebApplicationContext`
parent to the `GenericApplicationContext` abstraction. Any use of
`AnnotationConfigWebApplicationContext` is also removed as it also
inherits from the `AbstractRefreshableApplicationContext` outdated
hierarchy.

A new `AnnotationConfigServletWebApplicationContext` context is
introduced instead, extending from `GenericApplicationContext` and
providing the counter part of the reactive context for the Servlet-based
web app tests.

See gh-16096
6 years ago
Phillip Webb 2376f973f4 Merge branch '2.1.x' 6 years ago
Phillip Webb 47c6bf741d Merge branch '2.0.x' into 2.1.x 6 years ago
Phillip Webb 07c000c5b7 Merge branch '1.5.x' into 2.0.x 6 years ago
Andy Wilkinson 878a635bfb Merge branch '2.1.x' 6 years ago
Andy Wilkinson 864942ad4f Merge branch '2.0.x' into 2.1.x 6 years ago
Spring Operator 1a4c6f2dac Use HTTPS for external links wherever possible
See gh-16319
6 years ago
Andy Wilkinson ba4671f0ab Merge branch '1.5.x' into 2.0.x 6 years ago
Andy Wilkinson 36c1c051b8 Merge branch '2.1.x' 6 years ago
Andy Wilkinson e23f72c8b0 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson 9fbd38ab3c Merge branch '1.5.x' into 2.0.x 6 years ago
Andy Wilkinson b828b398b5 Merge branch '2.1.x' 6 years ago
Andy Wilkinson a36aa67b52 Merge branch '2.0.x' into 2.1.x 6 years ago
Spring Operator 3e2b6ac8ed Update build and setup configuration to use HTTPS
See gh-16246
6 years ago
Andy Wilkinson 68bfb020aa Reduce need for bean method proxying and disable where not needed
Closes gh-9068
6 years ago
Andy Wilkinson aa2008bc5a Merge branch '2.1.x' 6 years ago
Andy Wilkinson f0ef693376 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson c2eeeb032c Work around javac bug 6 years ago
Andy Wilkinson 8c3cec8f13 Merge branch '2.0.x' into 2.1.x 6 years ago
Andy Wilkinson 361437f4e2 Merge branch '1.5.x' into 2.0.x 6 years ago
Andy Wilkinson 2bd3d19bee Ensure that DevTools' beans use eager init even when app is lazy
Closes gh-15870
6 years ago
Andy Wilkinson d6a869fa98 Switch to Jakarta EE API dependencies where possible
Closes gh-16113
Closes gh-16112
Closes gh-16111
Closes gh-15916
Closes gh-15689
6 years ago
Stephane Nicoll 2ad234b605 Adapt to breaking change in Spring Hateoas 6 years ago
Andy Wilkinson de0c065625 Inject single-use configuration dependencies into bean methods
Closes gh-15751
6 years ago
Johnny Lim 55f5f2f910 Polish
Closes gh-15987
6 years ago
Andy Wilkinson bd504e68fc Merge branch '2.1.x' 6 years ago
Andy Wilkinson 33b9321071 Track condition evaluation per-context when determining delta
Closes gh-15766
6 years ago
Andy Wilkinson be40d000ba Merge branch '2.1.x' 6 years ago
Andy Wilkinson 1be794fe65 Retry upload for any SocketException not just a ConnectException
Previously, DevTools would retry the upload of the changes to an
application in the event of a ConnectException. If a different
network-level failure occurred, it would not be retried and would
cause the file watching thread to die.

This commit attempts to make things more robust by retrying all
SocketExceptions and not just ConnectExceptions. A warning is
logged when a failure occurs. A separate debug message that
includes the exception is also logged.

Closes gh-10317
6 years ago
Andy Wilkinson d9ec48ef12 Merge branch '2.1.x' 6 years ago
Andy Wilkinson 3f32fbd0de Polish "Remove unwanted @Nullable annotations"
See gh-15876
6 years ago
wonwoo 2855321074 Remove unwanted @Nullable annotations
See gh-15876
6 years ago
Andy Wilkinson 45cc649c7d Merge branch '2.1.x' 6 years ago
Andy Wilkinson 82bc87560c Use AssertJ’s exception assertions rather than fail
Closes gh-15761
6 years ago
dreis2211 d4ab101223 Use Assertions.contentOf() where possible
Closes gh-15793
6 years ago
Stephane Nicoll dca6879d4e Polish "Remove an unused interface in RestarterTests"
Closes gh-15666
6 years ago
Johnny Lim d7f0c1d63c Remove an unused interface in RestarterTests
See gh-15666
6 years ago
Andy Wilkinson 61d04db0d7 Minimize and centralize assumptions about build output
Closes gh-15471
6 years ago
Andy Wilkinson db5ab1d14c Do not rely on test runner using static main method in RestarterTests
Closes gh-15461
6 years ago
igor-suhorukov a2ebba8db1 Replace explicit generic type with diamond operator
See gh-15424
6 years ago
igor-suhorukov 5c1813aef8 Replace this lambda with a method reference
See gh-15401
6 years ago
Phillip Webb 5e50f762a3 Revert DevTools polish
It seems like we can't use constructor injection at the
moment.
6 years ago
Phillip Webb f3fa20b2d1 Polish 6 years ago
Andy Wilkinson 743782de7e Revert reloadable message source support
Closes gh-14882
See gh-14699
See gh-13377
6 years ago
Andy Wilkinson 8ec9f23719 Polish "Add Log Output when DevTools restart is disabled"
Closes gh-14807
6 years ago
Marcus Eisele e76605ff75 Add Log Output when DevTools restart is disabled
This covers the cases when:
  * An Java agent based reloader (e.g. JRebel) is being used
  * The reloader was disabled by using a system property

See gh-14807
6 years ago
Phillip Webb c393f6262e Merge branch '2.0.x' 6 years ago
Phillip Webb 33c7a74bee Update copyright year for changed files 6 years ago
Madhura Bhave 5f24af6c3c Polish
Closes gh-14915
6 years ago
michal 7181e76135 Skip restarter for JUnit5
See gh-14915
6 years ago
Madhura Bhave 80bb7ea9d6 Merge branch '2.0.x' 6 years ago
Madhura Bhave bc58d4456f Rationalize DefaultRestartInitializerTests
Closes gh-14927
6 years ago
Stephane Nicoll 1a0d53dec0 Replace ReflectionTestUtils usage by hasFieldOrPropertyWithValue
Closes gh-14696
6 years ago
Phillip Webb 1d8e4a8f5c Make devtools set spring.messages.reloadable=true
Update `DevToolsPropertyDefaultsPostProcessor` to automatically set
the recently introduced `spring.messages.reloadable` property to
`true`.

Closes gh-14699
6 years ago
Johnny Lim 335775892b Polish
See gh-14667
6 years ago
Phillip Webb d76bba5e6f Migrate from ExpectedException rule to AssertJ
Replace ExpectedException JUnit rules with AssertJ exception
assertions.

Closes gh-14336
6 years ago
Johnny Lim 698bbd6a9e Polish
Closes gh-14597
6 years ago
Stephane Nicoll 19779951a1 Handle class not found
See gh-14575
6 years ago
Phillip Webb 84e72193b3 Remove automatic devtools web debug logging
Rework `DevToolsPropertyDefaultsPostProcessor` so that web logging no
longer defaults to `DEBUG`. The post processor now logs an info hint
to suggest the user configure the logging themselves.

Closes gh-14575
6 years ago
Andy Wilkinson 65295e0e14 Merge branch '2.0.x' 6 years ago
Andy Wilkinson bff93a67ce Fix remote DevTools restart when a previously added class is then changed
Previously, if a class was added and then changed, a restart would be triggered
and things would behave as if the class had been deleted. This occurred
because, when looking for additional classes that were not on the original
classpath, only files that had been added were considered. The subsequent
change to the class was noticed as a modified rather than an addition,
resulting in the class being skipped.

This commit updates the resource resolver to only ignore deleted files and
consider both added files and modified files when looking for additional
resources.

Closes gh-14205
6 years ago
Stephane Nicoll f42891489d Polish key description
Closes gh-14450
6 years ago
Phillip Webb d4b11c8fa6 Attempt to fix test failures on Java 9+
See gh-14453
6 years ago
Phillip Webb cef635d86c Reinstate devtools debug logging with opt-out
Reinstate `web` logging when devtools is in use, making use of the new
logging groups support. Devtools now also logs an `INFO` message
informing that properties defaults are offers an easy way to disable
them.

Closes gh-14450
6 years ago
Phillip Webb c4caf2705a Defer devtools logging
Defer logging from devtools classes until the context is prepared.

Closes gh-14453
6 years ago
Phillip Webb aa2da0bb0d Remove logging level changes from devtools
Update `DevToolsPropertyDefaultsPostProcessor` to remove custom logging
level configuration. Unfortunately it's not easy to back-off logging
overrides when the user has a custom logback/log4j configuration.

Closes gh-14310
6 years ago
Phillip Webb 9d1b3a2b49 Merge branch '2.0.x' 6 years ago
Phillip Webb cafff43022 Update copyright header of changed files 6 years ago
Johnny Lim fe3fe0fa63 Polish
Closes gh-14202
6 years ago
Johnny Lim 9602a32a8d Polish
Closes gh-14172
6 years ago
Brian Clozel f2511b7fa3 Improve Web DEBUG logging output configuration
Since SPR-16946, Spring Framework revisited the DEBUG logging output
developers get while working on Spring MVC and Spring WebFlux
applications.

This commit aligns to those changes where DEBUG output was produced
in Spring Boot (especially in `DefaultErrorWebExceptionHandler`).

This also enables DEBUG logging on the related packages when running an
application with Spring Boot Developer Tools, providing a better
development experience.

This is also adding the new `spring.insights.web.log-request-details`
configuration property, which logs additional information about the
incoming requests at the DEBUG and TRACE levels. Since that information
can be sensitive (e.g. credentials, tokens, etc.), this property is not
enabled by default nor activated by the Developer Tools.

Closes: gh-13511
6 years ago
Stephane Nicoll 8f2ab952f5 Polish javadoc formatting 6 years ago
Andy Wilkinson 971caad6f8 Merge branch '2.0.x' 6 years ago
Andy Wilkinson 3e093035b4 Merge branch '1.5.x' into 2.0.x 6 years ago
Stephane Nicoll 0d04d7adf8 Migrate @EventListener to ApplicationListener
Closes gh-14041
6 years ago
Stephane Nicoll 624c1306fd Merge branch '2.0.x' 6 years ago
Stephane Nicoll 737b4a275b Polish 6 years ago
Stephane Nicoll d12a099a6d Merge branch '2.0.x' 6 years ago
Johnny Lim d4fba783fb Remove ex.printStackTrace() in tests
Closes gh-13952
6 years ago
Phillip Webb 4d86ac4713 Polish copyright date on changed files 6 years ago
Phillip Webb 1b91c0ceb7 Merge branch '2.0.x' 6 years ago
Phillip Webb 0ec22c8bf9 Polish copyright date on changed files 6 years ago
Phillip Webb 80da9cf5eb Merge branch '2.0.x' 6 years ago
Phillip Webb aeb885192e Polish ternary expressions 6 years ago
Phillip Webb a6c9c92f2e Merge branch '2.0.x' 6 years ago
Phillip Webb 63b609827e Fix checkstyle method order issues
Fix checkstyle issues with method ordering following the
spring-javaformat upgrade.

See gh-13932
6 years ago
Phillip Webb e6a68b39a3 Fix checkstyle javadoc issues
Fix checkstyle issues in javadoc following the spring-javaformat
upgrade.

See gh-13932
6 years ago
Phillip Webb 7fc455654a Fix checkstyle ternary issues
Fix checkstyle issues with ternary expressions following the
spring-javaformat upgrade.

See gh-13932
6 years ago
Stephane Nicoll ac01409332 Merge branch '2.0.x' 6 years ago
Stephane Nicoll ec2ebf52de Merge branch '1.5.x' into 2.0.x 6 years ago
Stephane Nicoll 48962718d1 Merge branch '2.0.x' 6 years ago
Johnny Lim 068e22d60b Polish
See gh-13776
6 years ago
Andy Wilkinson 87b72cc981 Polish DevTools auto-configuration tests to avoid bean overrides
See gh-13609
6 years ago
Andy Wilkinson de900e71a3 Merge branch '2.0.x' 6 years ago
Andy Wilkinson 032d5488cd Tolerate non-existent source folders in DevTools
Closes gh-13620
6 years ago
Madhura Bhave cb621024e4 Include error stacktrace by default when devtools is in use
Fixes gh-828
7 years ago
Johnny Lim 6b0ce46491 Polish
Closes gh-13320
7 years ago
Phillip Webb 5b3cb8a698 Update copyright header year for changed files 7 years ago
Phillip Webb 41efea51a7 Polish ternary expressions
Consistently format ternary expressions and always favor `!=` as the
the check.
7 years ago
Phillip Webb e125085993 Merge branch '1.5.x' into 2.0.x 7 years ago
Johnny Lim b941c5f1a6 Polish
Closes gh-12981
7 years ago
Stephane Nicoll 92d9479765 Gracefully handle exclusion of DataSourceAutoConfiguration
This commit makes sure that an auto-configuration that requires
`DataSourceProperties` will not break if `DataSourceAutoConfiguration`
has been explicitly excluded.

Closes gh-12512
7 years ago
Phillip Webb 685babc829 Polish "Use lambdas for map entry iteration where possible"
Closes gh-12626
7 years ago
igor-suhorukov 69bc19e0ca Use lambdas for map entry iteration where possible
See gh-12626
7 years ago
Phillip Webb 47a56616ae Merge branch '1.5.x' 7 years ago
Phillip Webb 98a2a91d16 Polish 7 years ago
Stephane Nicoll 553b184248 Polish "Use Supplier variants of Assert methods"
Closes gh-12630
7 years ago
dreis2211 3b0f6e7168 Use Supplier variants of Assert methods
See gh-12630
7 years ago
dreis2211 8626daf135 Replace Mockito.times(0) with Mockito.never()
Closes gh-12475
7 years ago
igor-suhorukov cca976eccd Remove redundant "close" call
Closing the resource is handled automatically by the try-with-resources.

Closes gh-12453
7 years ago
Stephane Nicoll ed05e1f7ca Polish "Reorder modifiers to comply with the JLS"
Closes gh-12432
7 years ago
igor-suhorukov aebb475bc5 Reorder modifiers to comply with the JLS
See gh-12432
7 years ago
Stephane Nicoll a55180aa1e Polish "Get rid of "magic" time constants"
Closes gh-12411
7 years ago
igor-suhorukov ce78a78231 Get rid of "magic" time constants
See gh-12411
7 years ago
Phillip Webb 29c3be3590 Polish 7 years ago
Johnny Lim d441a8a89a Polish
Closes gh-12205
7 years ago
Andy Wilkinson 73ad36d817 Merge branch '1.5.x' 7 years ago
Stephane Nicoll 09ff815f00 Harmonize metadata
Closes gh-12177
7 years ago
Phillip Webb 4b9c3c137e Polish Collection.toArray
Consistently use `StringUtils.toStringArray`, `ClassUtils.toClassArray`
or zero length when converting collections to arrays.

Fixes gh-12160
7 years ago
Phillip Webb cd5266ac03 Polish 7 years ago
Johnny Lim 2fe86da95b Use isTrue() and isFalse() for AssertJ
Closes gh-12170
7 years ago
Johnny Lim 87bf0b26df Polish modifier order
See gh-12019
7 years ago
Andy Wilkinson 5522174e96 Provide package info for all packages included in javadoc 7 years ago
Andy Wilkinson 76a450dfba Format with Eclipse Oxygen SR2 7 years ago
Phillip Webb 69234f8c08 Polish 7 years ago
dreis2211 81459efffa Use HTTPS URLs where applicable 7 years ago
igor-suhorukov 717bd2c580 Remove or use unused method parameters 7 years ago
dreis2211 c1675c2d5f Use InvocationOnMock.getArgument() where possible
Closes gh-11818
7 years ago
dreis2211 a7663c88d3 Replace casted Mockito.any() calls
Closes gh-11817
7 years ago
Stephane Nicoll 90545fb0c6 Update LocalDevToolsAutoConfiguration to use constructor injection
Closes gh-11769
7 years ago
Phillip Webb adfb6dc128 Polish 7 years ago
Andy Wilkinson cedb6b2f17 Revert "Clean up the logging system later in context close processing"
This reverts commit 8619256d2a.

See gh-11676
7 years ago
Andy Wilkinson 8619256d2a Clean up the logging system later in context close processing
Previously, the logging system was cleaned up in response to the
root context's ContextClosedEvent being received. This event is
published early in a context's close processing. As a result, the
logging system is in cleaned up state while, for example, disposable
beans are being destroyed.

This commit reworks the logic that triggers logging system clean up
to use a disposable bean instead. Disposable beans are called in
reverse-registration order. The logging clean up bean is registered as
early as possible so that it should be the last disposable bean to
be called.

Closes gh-11676
7 years ago
igor-suhorukov 093ca0a687 Use EnumMap whenever possible
Replace regular Map instances with EnumMap to reduce memory consumption.

Closes gh-11760
7 years ago
Phillip Webb ab6ad6aa4b Polish 7 years ago
andrey.onufreyko b19dcb13e2 Replace string arguments with char
Optimize method calls by replacing single character String arguments
with char.

Closes gh-11680
7 years ago
Johnny Lim 768e7c07e6 Polish
Closes gh-11720
7 years ago
Stephane Nicoll c926bed6f5 Polish "Fix modifiers order"
Closes gh-11681
7 years ago
igor-suhorukov e2d05607f2 Fix modifiers order
See gh-11681
7 years ago