Update `TestcontainersLifecycleBeanPostProcessor` so that on
initialization of the first bean all `Container` instances are started.
With this update all `Container` beans will be started first in the
`preInstantiateSingletons` phase and destroyed last.
Closes gh-35223
Update `ServiceConnectionContextCustomizer` so that is applies the
`TestcontainersLifecycleApplicationContextInitializer` to all
application contexts.
Closes gh-35222
Update `ServiceConnectionContextCustomizer` with `equals` and `hashcode`
methods so that it works correctly when part of a context cache key.
Closes gh-35216
Update `MainMethod` to search from the bottom of the stack rather than
the start. Prior to this commit, an incorrect `main` method would be
found if more than one `main` was in the stack.
Fixes gh-35214
Rather than implementing factories for FlywayConnectionDetails for
each supported SQL database, we instead use a factory to takes
JdbcConnectionDetails as a source and produces
FlywayConnectionDetails.
Closes gh-35138
Update testcontainers auto-configuration so that `Container` bean
instances are no longer needed when registering `ConnectionDetails`
beans. Registration now occurs based on the bean type and the `name`
attribute of `@ServiceConnection`.
Fixes gh-35168
Update `ContainerConnectionDetailsFactory` so that they consistently
extend `ContainerConnectionDetails`. The container is also no longer
accessible from the `ContainerConnectionSource` and is never used
during the construction of `ConnectionDetails` instances.
See gh-35168
Add `ExcludeFilterApplicationContextInitializer` to register the
`TestTypeExcludeFilter` for regular applications.
Prior to this commit, the filter was only registered using the
`ExcludeFilterContextCustomizerFactory` which meant that test components
were filtered in tests but not when using `SpringApplication.from` with
a test classpath.
Fixes gh-35206