Previously, MeterRegistryPostProcessor would trigger the creation of all
meter binders and meter registry customizers before applying the
customizers and calling the binders. In some situations with complex
dependency graphs where the creation of a binder and the injection of
its dependencies inadvertently triggered some meter binding, this
could result in meters being bound before the registry had been
customized.
This commit reworks MeterRegistryPostProcessor and MeterRegistryConfigurer
to defer the retrieval of registry customizers and meter binders until
just before they are needed. As a result, customizers are now retrieved
and applied before the binders are retrieved.
Closes gh-15483
Previously, LoggingApplicationListener its tests, and LogFile made some
assumptions that do not hold true on Windows. Specifically,
LoggingApplicationListenerTests used TestPropertySourceUtils to add
properties to the environment. This uses Java's standard Properties
parsing which does a poor job of handling Windows file paths (Strings
with backslashes in them). Secondly, LogFile made assumptions about
the use of forward clashes for the file separator.
This commit replaces the use of TestPropertySourceUtils and removes
the assumption about the OS's file separator.
Closes gh-15471
Concourse builds spring-boot-tests separately from spring-boot-project
and relies on modules from the latter being available in the
distribution repository when building the former. This commit enables the
deployment of spring-boot-test-support from spring-boot-project so that it
is added to the distribution repository and is therefore available when
building spring-boot-tests. It is then excluded when putting to the
Artifactory resource as we do not want it to be published.
See gh-15471