A test to ensure that the updated configuration properties support
correctly expands placeholders using mapped properties.
Prior to the updated support an `application.properties` file of the
form:
my.prefix.some-url=http://github.com
my.prefix.login-url=${my.prefix.some-url}/login
Would not correctly expand the placeholder against the environment
variable `MY_PREFIX_SOME_URL`
Closes gh-2496
Remove the `relaxed` attribute from `@ConditionalOnProperty` and instead
rely on the direct configuration property source relaxed name support.
Closes gh-9003
Extend `BindFailureAnalyzer` to support the exceptions thrown by the new
configuration properties `Binder`. Origin information is now also
reported when available.
Closes gh-8934
Create a new `Binder` class specifically designed to bind properties
from one or more `ConfigurationPropertySources` to an object.
The binder provides a replacement for `RelaxedBinder` and attempts to
fix the limitations of the previous solution.
Closes gh-8868
Add a new abstraction that represents a source for configuration
properties. The new source is similar to the `Environment` abstraction
provided by Spring Framework but follows a stricter set of rules.
The `ConfigurationPropertySource` provides a uniform view onto a source
and will help to move responsibility for accessing properties in a
"relaxed" way away from the caller.
The `ConfigurationPropertyName` class enforces strict naming rules
that callers must follow when accessing properties. Configuration
names are lowercase, dot separated and may contain dashes. In
addition "indexed" name elements may be defined by using square
brackets.
Mapping is provided to existing Spring PropertySources implemented with
the relaxed rules that users are used to. For example the configuration
property `server.local-host` can still be written in a property files
as `server.localHost` or in an environment variable as SERVER_LOCALHOST.
Closes gh-4910
Move the `Origin` and related classes from `o.s.boot.env` to
`o.s.boot.orgin` and extend support. The concept of an origin can now
be used outside of just the Spring Environment abstraction.
Closes gh-9001
Deprecate `RelaxedDataBinder`, `RelaxedPropertyResolver` and related
classes in preparation for the updated configuration properties binder
work.
See gh-9000
Update `SpringApplication` so that the `sources` property is
independent to the primary source provided on construction.
Prior to this commit the sources property was a little unusual in that
calling set would add to the existing collection.
Closes gh-8910
`BasicErrorControllerIntegrationTest` is handling the context in each test
and yet it starts a useless test via `@SpringBootTest`. This commit
removes the useless runner and associated annotations.
Now that reactor-netty has a strict set of transitive dependencies, this
commit refactors the managed dependencies to only list the required
ones. `netty-all` is still managed to avoid conflicts when pulled by
other libraries.
Fixes gh-8553