This commit makes sure to apply Atomikos defaults also adds a test that
validates Atomikos defaults are consistent.
As a side effect of that, `threadedTwoPhaseCommit` is now `false` (which
is effectively what users got with no customization anyway since that
default was changed in Atomikos 3.7
Closes gh-9141
Update `ConfigurationPropertiesBindingPostProcessor` to once again allow
beans to be bound again following changes to the underlying property
sources.
Fixes gh-9160
Update `SpringApplicationJsonEnvironmentPostProcessor` so that the
returned `PropertyOrigin` uses the source property name and not the
JSON key.
See gh-8932
Update `SpringApplication` so that the `run` methods and constructors
now require `Class<?>` arguments, rather than `Objects`. String based
sources can still be loaded, but must now be set on the `getSources()`
collections. `Package` and `Resource` types are no longer directly
supported.
This change should help IDEs offer better content assist, and will
help integrations with alternative languages such as Ceylon.
Users currently passing in Class references or using the
`spring.main.sources` property should not be affected by this change. If
an XML resource is being used, some refactoring may be required (see the
changes to `SampleSpringXmlApplication` in this commit).
Fixes gh-9170
The `spring.resources.static-locations` key (see `ResourceProperties`)
lists many locations by default, including `"classpath:/static"` and
`"/"`. The latter is about exposing resources located in the root
servlet location.
Reactive web applications don't depend on a Servlet-related
`ApplicationContext`/`ResourceLoader`, so `"/"` is then resolved as
`"classpath:/"`, which exposes the whole classpath.
To avoid such situations, the `GenericReactiveWebApplicationContext`
overrides the `getResourceByPath(String path)` method and always returns
non existent resources if the path starts with `"/"`.
Fixes gh-8485