This commit improves TestImage so that an explicit image can trigger
the creation of the container, with optional additional setup. This
removes the need of creating additional container types for images that
have multiple flavors, and to please the static method that can only
create a container based on a single match.
Closes gh-51082
This commit preserves the classpath-relative path for Flyway migration
discovered by the native image resource provider so nested migrations
remain readable.
See gh-50433
Signed-off-by: Dongliang Xie <dragonfsky@gmail.com>
Remove NoSuchMethodError catch blocks and reflective fallbacks for
dependency versions that are no longer supported
See gh-50383
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
This commit also suppresses deprecations introduced in Flyway 11.13.3.
A future release of Flyway should provide an alternative API to those
that are now deprecated and that we are still using.
See gh-47742
Closes gh-47562
* Update dependencies name
Modules are prefixed with `testcontainers-`
* Update container classes
Container classes are under `org.testcontainers.<module-name>` package
See gh-47664
Signed-off-by: Eddú Meléndez <eddu.melendez@gmail.com>
Relocate `@AutoConfigureDataSourceInitialization` from
`spring-jdbc-test` to `spring-boot-test-autoconfigure`. This change
allows Flyway and Liquibase to respond to the annotation without
the user needing to remember the `spring-jdbc-test` dependency.
This is especially important for R2DB applications which may
still be using Flyway or Liquibase for migrations and will
want them to apply during tests.
See gh-46356
See gh-47322
This commit modularizes spring-boot-test-autoconfigure. It now
contains only the code that's central to test auto-configuration.
Feature-specific functionality has moved out into -test modules,
some existing and some newly created. For example, `@DataJpaTest` can
now be found in spring-boot-data-jpa-test.
Closes gh-47322
Refactor `PropertyMapper` so that it no longer calls adapter or
predicate methods by default when the source value is `null`. This
effectively makes all default calls the same as using
`alwaysWhenNotNull` in the previous generation of the code.
For the limited times when you do need to deal with `null` values, the
new `always()` method can be used.
For example,
map.from(source::method).to(destination::method);
Will not call `destination.method(...)` if `source.method()` returns
`null`.
Where as:
map.from(source::method).always().to(destination::method);
Will call `destination.method(null)` if `source.method()` returns
`null`.
This update provides clearer semantics for the API and allows for better
JSpecify nullability annotations. It has also simplified much of our
existing property mapper code.
Closes gh-47024
Co-authored-by: Moritz Halbritter <moritz.halbritter@broadcom.com>