Previously, the mavenOptional was added to every published module but it
was only used by spring-boot-maven-plugin. This commit reduces its scope
so that it only affects the Maven plugin. It also reworks the
implementation to reuse the existing optional configuration rather than
declaring a new mavenOptional configuration. Lastly, publication of
Gradle Module Metadata (GMM) has been disabled for
spring-boot-maven-plugin. This is seen as preferable to publishing the
metadata – which isn't really needed as it does not contain any useful
additional information – and having to suppress warnings about
incomplete mapping of GMM to pom metadata.
Closes gh-41263
The model incorrectly marks the Gradle API and all of its
dependencies as test dependencies, making them unavailable in Eclipse
to code in src/main/java. We work around this by modifying the
classpath container to remove the test attribute from the
dependencies that should be available to main code.
See gh-41228
Update `PropertiesMigrationReporter` so that already migrated properties
are not reported. Prior to this commit, if a deprecated property was
replaced by a property that could bind with the name relaxed name it
would be reported. For example: `test.someproperty` being replaced with
`test.some-property`.
In order to check the actual underlying property name, the
`PropertySourceOrigin` class has been updated so that it is always
returned, even if another `Origin` is available.
Fixes gh-35774
Update `StandardConfigDataLocationResolver` to give a better error
message when a location cannot be resolved. Prior to this commit, a
location with a misspelling in the prefix would only give an error
about the file extension being not known.
Fixes gh-36243
Update `LocalHttpClientTransport` to support explicit `npipe://` prefix
in the host name. This is the format used in the Docker config from
v4.31.1 onward.
Fixes gh-41199
Ensure `Thread.currentThread().getContextClassLoader()` returns the same
classloader for all types of initialization.
Prior to this commit, `JettyEmbeddedWebAppContext` would return a
different classloader when initializing Servlet and Filter classes. This
was due to the fact that our `deferredInitialize()` method has called
outside of a `getContext().call(...)`.
Fixes gh-37649
Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
This commit introduces a new annotation, `@DockerComposeTest`,
that allows a test class to have multiple tests, each of which
uses a different Docker Compose YAML file.
Closes gh-41154
Replace `DockerImageNames` with a enum and relocate it from the
`testcontainers` to `container` package. The enum now also
becomes a common location that we can use to apply container
configuration such as timeouts.
Closes gh-41164
Co-authored-by: Phillip Webb <phil.webb@broadcom.com>