Update all `EmbeddedServletContainer` implementations to ensure that
the `start()` method can be called multiple times, with the second call
being ignored.
Fixes gh-8036
Update `Log4J2LoggingSystem` and `LogbackLoggingSystem` to ensure
that filters are removed when the `cleanUp` method is called. Prior
to this commit application failures would not remove the filter and
no log messages would appear.
The `LoggingApplicationListener` has also been updated since it
previously failed to handle `ApplicationFailureEvents`.
Finally `EventPublishingRunListener` and `DelegatingApplicationListener`
have been updated to deal with `null` parameters and to cope with
listener errors.
Fixes gh-7758
In version 2.3.6 and earlier, an attempt to create a Bucket or a
ClusterInfo would fail fast with a ConnectException in the cause of
the Couchbase server was done. In 2.3.7 this remains true for a
Bucket but is no longer the case for ClusterInfo. The latter now
retries for 75 seconds by default and when it eventually fails a
ConnectException is no longer part of the cause chain.
This commit makes the auto-configured ClusterInfo depend on the
auto-configured Bucket. This means that the Bucket is always created
before the ClusterInfo, thereby ensuring that things fail gracefully
with useful diagnostics when the server is unavailable.
Closes gh-8092
Previously, AbstractEmbeddedServletContainerFactory detected an
exploded war by looking for `/WEB-INF/` in the path of its code
source's location. This failed on Windows due to the use of `\` rather
than `/` separators.
This commit updates AbstractEmbeddedServletContainerFactory to
uses the OS's separator rather than hardcoding `/`.
Closes gh-8100