The ConnectionFactory can be used early in user configuration to
configure an `Exchange`. Such connection may not hold the proper
MetricCollector and can be cached, leading to missed metrics
information.
This commit moves the configuration of RabbitMQ metrics to a
BeanPostProcessor so that the proper MetricCollector is configured
before any connection is created.
Closes gh-12855
This commit improves the `health` endpoint to run health check for a
particular component or, if that component is itself a composite, an
instance of that component.
Concretely, it is now possible to issue a `GET` on
`/actuator/health/{component}` and
`/actuator/health/{component}/instance` to retrieve the health of a
component or an instance of a composite component, respectively.
If details cannot be showed for the current user, any request leads to a
404 and does not invoke the health check at all.
Closes gh-8865
Prior to 3db5c70b, RelaxedDataBinder would use a ConversionService
to convert a String into a File via its ObjectToObjectConverter.
3db5c70b changed the configuration of the data binder such that a
FileEditor was registered. Property editors take precedence over any
conversion service so the FileEditor was used instead. This caused a
regression as the FileEditor uses slightly unusual logic for a String
to File conversion. Specifically, when given a value of ".", it will
locate a ClassPathResource for the root of the classpath and use the
result of calling getFile() on that resource. This fails when the
root of the classpath is in a jar file and also provides a different
result when the root of the classpath is not the current directory.
This commit updates RelaxedDataBinder to suppress the registration
of an editor for File. This restores the behaviour prior to 3db5c70b
by allowing the ConversionService to be used instead.
Closes gh-12786