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
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
Currently Spring Integration creates its own `TaskScheduler` bean if one
does not exist in the context yet. When we add `@EnableScheduling`,
Spring Boot auto-configures one for us, but this one comes with slightly
different options than the default in Spring Integration.
This commit makes sure that Spring Integration reuses the
auto-configured TaskScheduler if possible, regardless of the user
opting-in for `@EnabledScheduling`.
See gh-25109
Refine the package restructure started in 91ccc23462 to help provide
a solid foundation for code snippets. This commit renames many of the
classes so that they no longer end in `Example`. It also removes some
of the inner types that were previously used. Many tag comments have
also been moved to ensure that `import` statements are available in
the docs.
Closes gh-25089
Restructure the packages in `spring-boot-docs` so that they mirror
the documentation sections. There are now three main packages:
`springbootfeatures`, `productionreadyfeatures` and `howto`. Each
of the main packages has a subpackage named after the section headings.
Example code now uses consistent `// tag::` names and imports are
applied using `[tag=*]` whenever possible.
Test snippets have been moved to `src/main/java` so that only a single
import attribute needs to be defined.
Closes gh-25089