Commit Graph

1246 Commits

Author SHA1 Message Date
Phillip Webb 36a22fcd59 Unify HTTP client redirect behavior and provide configuration option
Update `ClientHttpRequestFactoryBuilder` implementations to ensure
that all libraries have consistent redirect follow behavior. Following
of redirects is enabled by default.

The `ClientHttpRequestFactorySettings` may be used to change if
redirects should be followed. The `spring.http.client.redirects`
property may also be used to update the default behavior.

Closes gh-42879
2024-10-25 02:45:36 -07:00
Phillip Webb 3a8b2e4bc8 Add `HttpClientAutoConfiguration` and use it wherever possible
Add a new `HttpClientAutoConfiguration` class that provides
`ClientHttpRequestFactoryBuilder` and `ClientHttpRequestFactorySettings`
beans and new configuration properties.

The existing `RestTemplate`, `RestClient` and `WebServiceTemplate`
auto-configurations have been updated to make use of the new
HTTP client support.

Users may now set `spring.http.client` property to globally change
the `ClientHttpRequestFactory` used in their application.

Closes gh-36266
2024-10-25 02:45:35 -07:00
Phillip Webb 8feba568da Polish 2024-10-25 02:45:35 -07:00
Phillip Webb 37ae78ea73 Add Tomacat 11 Smoke Test
Closes gh-42730
2024-10-18 12:56:20 -07:00
Moritz Halbritter ba1a780147 Merge branch '3.3.x'
Closes gh-42774
2024-10-17 18:06:43 +02:00
Moritz Halbritter 73150b799a Merge branch '3.2.x' into 3.3.x
Closes gh-42772
2024-10-17 17:58:11 +02:00
Moritz Halbritter ce106eb43c Remove calls to deprecated Project.getBuildDir() in Gradle files
Closes gh-42739
2024-10-17 17:46:17 +02:00
Andy Wilkinson 25082d33e7 Provide more control over access to endpoint operations
This commit reworks the support for enabling and disabling endpoints,
replacing the on/off support that it provided with a finer-grained
access model that supports only allowing read-only access to endpoint
operations in addition to disabling an endpoint (access of none) and
fully enabling it (access of unrestricted).

The following properties are deprecated:

- management.endpoints.enabled-by-default
- management.endpoint.<id>.enabled

Their replacements are:

- management.endpoints.access.default
- management.endpoint.<id>.access

Similarly, the enableByDefault attribute on @Endpoint has been
deprecated with a new defaultAccess attribute replacing it.

Additionally, a new property has been introduced that allows an
operator to control the level of access to Actuator endpoints
that is permitted:

- management.endpoints.access.max-permitted

This property caps any access that may has been configured for
an endpoint. For example, if
management.endpoints.access.max-permitted is set to read-only and
management.endpoint.loggers.access is set to unrestricted, only
read-only access to the loggers endpoint will be allowed.

Closes gh-39046
2024-10-17 13:56:44 +01:00
Moritz Halbritter c018c43886 Merge branch '3.3.x'
Closes gh-42736
2024-10-17 13:44:25 +02:00
Moritz Halbritter 8efe6e02d9 Merge branch '3.2.x' into 3.3.x
Closes gh-42735
2024-10-17 13:38:03 +02:00
Moritz Halbritter a3060652f8 Call String.toLowerCase and .toUppercase with explicit locale
Closes gh-42719
2024-10-17 13:20:39 +02:00
Phillip Webb 465e909974 Merge branch '3.3.x' 2024-10-16 13:09:09 -07:00
Phillip Webb 5732782043 Merge branch '3.2.x' into 3.3.x 2024-10-16 13:08:44 -07:00
Phillip Webb 41ae973d16 Update copyright year of changed files 2024-10-16 13:08:37 -07:00
Andy Wilkinson 1e33e6bc0d Merge branch '3.3.x'
Closes gh-42714
2024-10-16 12:18:22 +01:00
Andy Wilkinson 4b89ba7d20 Merge branch '3.2.x' into 3.3.x
Closes gh-42713
2024-10-16 12:15:34 +01:00
Andy Wilkinson 2c982260df Use platform dependencies instead of the dependency management plugin
Closes gh-42712
2024-10-16 12:08:44 +01:00
Phillip Webb 7af238a192 Merge branch '3.3.x'
Closes gh-42706
2024-10-15 18:03:00 -07:00
Phillip Webb d3061439b2 Merge branch '3.2.x' into 3.3.x
Closes gh-42705
2024-10-15 18:02:54 -07:00
Phillip Webb 51ff8d411c Fix Oracle JDK download URLs
Closes gh-42704
2024-10-15 18:02:40 -07:00
Stéphane Nicoll 06127d60b6 Adapt Kafka SSL smoke test with changes in Testcontainers
See gh-42670
2024-10-15 17:56:23 +02:00
Stéphane Nicoll e0152097f3 Polish "Upgrade to Testcontainers 1.20.2"
This commit review the original upgrade to retain compatiblity with the
deprecated Cassandra and ConfluentKafka containers.

This commit also fixes the SSL Cassandra tests. The new container uses
a custom wait strategy that uses plain text and does not work with an
SSL container.

Closes gh-42670

Co-authored-by: Moritz Halbritter <moritz.halbritter@broadcom.com>
2024-10-15 14:45:15 +02:00
Stéphane Nicoll a66d3d2f00 Merge branch '3.3.x'
Closes gh-42689
2024-10-15 10:42:41 +02:00
Stéphane Nicoll 056e2b6029 Merge branch '3.2.x' into 3.3.x
Closes gh-42688
2024-10-15 10:42:33 +02:00
Stéphane Nicoll b0dd42e9b9 Transform Maven settings with proper plugin repository tag
This commit adapts d44e7c9 to transforms plugin repositories using the
correct root tag. Previously, they were transformed with the regular
<repository> tag, which is invalid.

Closes gh-42687
2024-10-15 10:39:59 +02:00
Stéphane Nicoll a40ae49a76 Upgrade to Testcontainers 1.20.2
Closes gh-42670
2024-10-14 16:25:57 +02:00
Phillip Webb 8aee3e1e92 Allow structure logging JSON to be customized
Introduce a new `StructureLoggingJsonMembersCustomizer` interface as
well as additional properties that can be used to customize the JSON
produced with structured logging.

Closes gh-42486
2024-10-10 23:52:34 -07:00
Phillip Webb 54dcd9894c Remove remaining use of loader classic
Closes gh-42495
2024-10-01 18:23:35 -07:00
Phillip Webb 430753e4a8 Merge branch '3.3.x' 2024-10-01 17:50:26 -07:00
Phillip Webb 9ece00bda4 Merge branch '3.2.x' into 3.3.x 2024-10-01 17:50:21 -07:00
Phillip Webb c88a2dc116 Attempt to fix ant smoke test
See gh-42333
2024-10-01 17:49:24 -07:00
Phillip Webb e529769b0c Merge branch '3.3.x' 2024-10-01 17:20:14 -07:00
Phillip Webb 9f34899454 Merge branch '3.2.x' into 3.3.x 2024-10-01 17:20:10 -07:00
Phillip Webb d342eefa27 Use Sync task rather than Copy
See gh-42333
2024-10-01 17:19:52 -07:00
Phillip Webb 7de0b21089 Merge branch '3.3.x' 2024-10-01 16:57:06 -07:00
Phillip Webb 85ec3b1728 Merge branch '3.2.x' into 3.3.x 2024-10-01 16:57:00 -07:00
Phillip Webb e5b03a7741 Second attempt to fix spring-boot-smoke-test-ant
Fix error introduced in commit d44e7c9af2

See gh-42333
2024-10-01 16:56:37 -07:00
Phillip Webb 07d2b5180c Merge branch '3.3.x' 2024-10-01 16:26:37 -07:00
Phillip Webb 212e67b1cb Merge branch '3.2.x' into 3.3.x 2024-10-01 16:26:32 -07:00
Phillip Webb 1dce2cd62e Fix spring-boot-smoke-test-ant
Fix error introduced in commit d44e7c9af2

See gh-42333
2024-10-01 16:25:50 -07:00
Phillip Webb bc5a718cfa Merge branch '3.3.x' 2024-09-27 17:35:23 -07:00
Phillip Webb 3b8ae47096 Merge branch '3.2.x' into 3.3.x 2024-09-27 17:35:01 -07:00
Phillip Webb d44e7c9af2 Dynamically populate repositories used in Ant/Maven integration tests
Update build scripts and tests so that repository settings are copied
dynamically from the build.

See gh-42333
2024-09-27 17:33:00 -07:00
Phillip Webb 8282a90268 Merge branch '3.3.x' 2024-09-27 10:34:32 -07:00
Phillip Webb 055064f16b Merge branch '3.2.x' into 3.3.x 2024-09-27 10:33:30 -07:00
Phillip Webb 9836011ffd Create extension to configure Spring maven repositories
Create a small Groovy script that can be used in `settings.gradle`
files to extend `repositories` to support the various maven
repositories required for our build.

See gh-42333
2024-09-27 10:30:20 -07:00
Phillip Webb 7b3077280c Merge branch '3.3.x'
Closes gh-42441
2024-09-24 14:32:48 -07:00
Phillip Webb 100bedc07d Merge branch '3.2.x' into 3.3.x
Closes gh-42440
2024-09-24 14:29:09 -07:00
Phillip Webb ad72411e2b Apply conventions plugin to all subprojects
Closes gh-42438
2024-09-24 14:26:32 -07:00
Phillip Webb 0c1a042173 Merge branch '3.3.x' 2024-09-24 13:51:58 -07:00
Phillip Webb de2e5eeb22 Merge branch '3.2.x' into 3.3.x 2024-09-24 13:51:53 -07:00
Phillip Webb 54c3ccb4df Fix checkstyle violations in testng smoke test
Add conventions plugin and fix surfaced checkstyle errors.
2024-09-24 13:51:16 -07:00
Phillip Webb 72f379a5b2 Merge branch '3.2.x' into 3.3.x
Closes gh-42434
2024-09-24 13:01:05 -07:00
Phillip Webb eafe61c4ca Backport upgrade to Gradle 8.10.1
Cherry-pick commits d756bf4e86, 083ac67d13 and 162c929a80 to
upgrade to Gradle 8.10.1.

Closes gh-42433
2024-09-24 12:55:29 -07:00
Andy Wilkinson c6c4651337 Merge branch '3.3.x'
Closes gh-42385
2024-09-19 19:05:25 +01:00
Andy Wilkinson 7b427f4d3b Merge branch '3.2.x' into 3.3.x
Closes gh-42384
2024-09-19 19:05:12 +01:00
Andy Wilkinson 87c647cf65 Reduce log output of SampleJettyApplicationTests
Closes gh-42376
2024-09-19 19:04:59 +01:00
Johnny Lim 94e8c5db36 Polish gh-39957 and gh-41444
See gh-42359
2024-09-19 11:37:11 +02:00
Phillip Webb f5b6514bef Allow additional context interfaces to be defined for testing
Update `AssertableApplicationContext` and `ApplicationContextRunner`
implementations to support additional `ApplicationContext` interfaces.

Closes gh-42369
2024-09-18 23:47:13 -07:00
Stéphane Nicoll 3651ff87cd Reinstate auto-configuration support for embedded ActiveMQ
This commit restores auto-configuration for using an Embedded broker
with ActiveMQ classic.

Contrary to its 2.7.x version, "spring-boot-starter-activemq" no longer
adds the broker for consistency with Artemis, and to keep the existing
3.x behavior. Rather than "inMemory", a "s.a.embedded.enabled"
property has been reintroduced that matches the name used by Artemis.

The documentation has been updated to mention that the broker
dependency must be added to use it.

Closes gh-38404
2024-09-06 11:34:35 +02:00
Scott Frederick e7faca3bbb Add support for Testcontainer Redis
Add support for the official `com.redis:testcontainers-redis` container.

See gh-41450
2024-08-29 19:23:40 -07:00
Andy Wilkinson 4b0b5c263d Ensure that building test apps produces Java 17 bytecode
See gh-41980
2024-08-23 15:11:55 +01:00
Andy Wilkinson 4258953190 Ensure that building the SNI test apps produces Java 17 bytecode
See gh-41980
2024-08-23 14:56:20 +01:00
Andy Wilkinson d756bf4e86 Upgrade build to Gradle 8.10
Closes gh-41980
2024-08-23 12:41:05 +01:00
Andy Wilkinson 73f71d5560 Rework Cloud Foundry actuator support behind a pluggable abstraction
Deprecate `EndpointExposure.CLOUD_FOUNDRY` and introduce an alternative
implementation based on a pluggable abstraction.

The new `EndpointExposureOutcomeContributor` interface may now be used
to influence `@OnAvailableEndpointCondition` exposure results. Several
infrastructure beans that previously used the condition have been
refactored to always be registered, but tolerate missing endpoints.

A new smoke test application has been added that demonstrates how the
abstraction can be used by a third-party.

Closes gh-41135

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2024-08-20 16:22:56 -07:00
Moritz Halbritter 25c76957e5 Automatically disable banner when using structured logging
Closes gh-41659
2024-08-20 15:15:27 +02:00
Phillip Webb 450e31b42e Merge branch '3.3.x' 2024-08-19 16:47:31 -07:00
Phillip Webb 1d337b7c76 Merge branch '3.2.x' into 3.3.x 2024-08-19 16:46:51 -07:00
Phillip Webb f1987e6f8b Update copyright year of changed files 2024-08-19 16:45:34 -07:00
Moritz Halbritter fd1472784e Polish "Add SslInfoContributor and SslHealthIndicator"
See gh-41205
2024-08-19 10:41:29 +02:00
Jonatan Ivanov 5e3796e814 Add SslInfoContributor and SslHealthIndicator
See gh-41205
2024-08-19 10:00:00 +02:00
Moritz Halbritter 46150bae89 Merge branch '3.3.x'
Closes gh-41858
2024-08-14 17:20:59 +02:00
Moritz Halbritter 2a84fe5760 Merge branch '3.2.x' into 3.3.x
Closes gh-41857
2024-08-14 16:47:52 +02:00
Moritz Halbritter 1d45016d8c Upgrade to spring-javaformat 0.0.43
Closes gh-41853
2024-08-14 16:32:41 +02:00
Stéphane Nicoll 9fa0d3d8c7 Merge branch '3.3.x' 2024-08-13 10:19:47 +02:00
Stéphane Nicoll ff4b39a096 Merge branch '3.2.x' into 3.3.x 2024-08-13 10:19:39 +02:00
Stéphane Nicoll 68ce174980 Adapt LoaderIntegrationTests to Java 23
See gh-41698
2024-08-13 10:18:37 +02:00
Stéphane Nicoll 607627fce6 Adapt to deprecation in Spring Pulsar snapshots 2024-08-13 08:23:10 +02:00
Stéphane Nicoll a6567c7d47 Disable Infinispan tests on Java 23
Infinispan 14 does not work on Java 23, an upgrade to 15 is required.
This commit therefore disables those tests when running against a Java
version higher than 22.

Unfortunately, the version of JUnit that we use has no value for Java
23, so we have to use OTHER for that purpose.
2024-08-07 17:32:52 +02:00
Moritz Halbritter f4b4f4f0bf Make PID and application version available in the environment
Adds the following new properties:

- spring.application.pid
- spring.application.version

Refactors the ResourceBanner and the structured logging support to use
the new properties.

Closes gh-41604
2024-08-01 15:03:41 +02:00
Andy Wilkinson e201b94d4f Merge branch '3.3.x'
Closes gh-41616
2024-07-25 16:17:52 +01:00
Andy Wilkinson c642f6d268 Merge branch '3.2.x' into 3.3.x
Closes gh-41613
2024-07-25 16:16:35 +01:00
Phillip Webb de3b14f2b4 Refine structured logging
Refine structured logging to support `Environment`, `ApplicationPid` and
`ElasticCommonSchemaService` injection. With these updates we are able
to remove the `ApplicationMetadata` class and simplify the parameters
passed to the layout/encoder classes.

Closes gh-41491
2024-07-24 19:06:07 +01:00
Moritz Halbritter bf2950c045 Add support for structured logging
Update Logback and Log4j2 integrations to support structured logging.
Support for the ECS and Logstash JSON formats is provided out-of-the-box
and the `StructuredLogFormatter` interface may be used to if further
custom formats need to be supported.

Closes gh-5479

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2024-07-15 11:45:41 +01:00
Phillip Webb 5d4a777d27 Align test with upstream Spring Security change
Closes gh-41488
2024-07-15 06:53:09 +01:00
Andy Wilkinson cddf92e047 Polish "Deprecate @MockBean and @SpyBean"
See gh-39864
2024-07-12 13:49:11 +01:00
Jakob Wanger 24763940a0 Deprecate @MockBean and @SpyBean
- Deprecate Deprecate @MockBean and @SpyBean in favor of Spring
  Framework 6.2's @MockitoBean and @MockitoSpy
- Migrate usages of @MockBean and @SpyBean to @MockitoBean and
  @MockitoSpy

Signed-off-by: Jakob Wanger <jakobwanger@gmail.com>

See gh-39864
2024-07-12 12:18:01 +01:00
Phillip Webb c3ad8b0521 Add `APPLICATION_NAME` and `APPLICATION_GROUP` logging properties
Add `APPLICATION_NAME` and `APPLICATION_GROUP` properties that contain
verbatim values rather than formatted strings. Formatting of the values
is now handled by new `EnclosedInSquareBracketsConverter` classes for
both Logback and Log4J2.

The existing `LOGGED_APPLICATION_NAME` variable is now considered
deprecated. The `LOGGED_APPLICATION_GROUP` variable and related
logback converter have been removed since they never made it to a GA
release.

Closes gh-41444
2024-07-11 10:25:01 -07:00
Andy Wilkinson d07fe47102 Merge branch '3.3.x'
Closes gh-41447
2024-07-11 13:09:26 +01:00
Andy Wilkinson 784c8d2df4 Avoid duplicate junit-platform.properties files caused by Kafka
Gradle doesn't support excluding a dependency that's declared with a
classifier. Instead, this commit replaces the test-qualified
kafka-server-common dependency with the plain dependency. The plain
dependency was already present so this is equivalent to excluding
the test-qualified dependency.

Closes gh-41446
2024-07-11 13:08:58 +01:00
Stéphane Nicoll 156237227c Migrate MockMvc tests to MockMvcTester
See gh-41198
2024-07-03 15:09:10 +02:00
Moritz Halbritter de001f5af1 Polish "Add standardized property to distinguish a group of applications"
See gh-39957
2024-07-03 11:54:49 +02:00
Jakob Wanger 8ddb77f628 Add standardized property to distinguish a group of applications
This adds a property to provide some indicator that a set of
applications are part of a larger "business application" so that they
can be viewed in metrics, portals, traces and more.

See gh-39957
2024-07-03 11:06:46 +02:00
Andy Wilkinson 5b7365b63b Merge branch '3.3.x'
Closes gh-41258
2024-06-27 10:25:32 +01:00
Andy Wilkinson b0d4f1d356 Merge branch '3.2.x' into 3.3.x
Closes gh-41257
2024-06-27 10:16:36 +01:00
Andy Wilkinson 654016af7f Move Docker-related test support into a separate module
See gh-41228
2024-06-26 19:47:35 +01:00
Andy Wilkinson fda6f19c5b Update spring-boot-smoke-test-session-webflux-redis to use docker-test plugin
See gh-41228
2024-06-26 19:47:32 +01:00
Andy Wilkinson 5e332b8785 Update spring-boot-smoke-test-session-webflux-mongo to use docker-test plugin
See gh-41228
2024-06-26 19:47:28 +01:00
Andy Wilkinson 2890067e3a Update spring-boot-smoke-test-session-redis to use docker-test plugin
See gh-41228
2024-06-26 19:47:25 +01:00
Andy Wilkinson b3f3501e2b Update spring-boot-smoke-test-session-mongo to use docker-test plugin
See gh-41228
2024-06-26 19:47:22 +01:00