Commit Graph

21334 Commits

Author SHA1 Message Date
Andy Wilkinson dbb24286ff Separate stopping and destruction so web server can be restarted
Previously, when a Servlet-based WebServer was stopped it would also
stop the ServletContext. This led to problems as Tomcat and Undertow
would then not allow a restart. Jetty would allow a restart but
duplicate servlet registrations would then be attempted.

This commit modifies the WebServer lifecycle to separate stopping
and destruction for both servlet and reactive web servers. This
allows a WebServer's stop() implementation to leave some components
running so that they can be restarted. To completely shut down a
WebServer destroy() must now be called.

Both Tomcat and Jetty WebServers have been updated to stop their
network connections when stop() is called but leave other components
running. This works with both servlet and reactive web servers.

Note that an Undertow-based Servlet web server does not support
stop and restart. Once stopped, a Servlet Deployment cannot be
restarted and it does not appear to be possible to separate the
lifecycle of its network connections and a Servlet deployment.

Reactor Netty and Undertow-based reactive web servers can now also
be stopped and then restarted. Calling stop() stops the whole server
but this does not cause a problem as there's no (application-exposed)
ServletContext involved. There may be room to optimize this in the
future if the need arises.

Closes gh-34955
2023-06-26 20:58:59 +01:00
Scott Frederick 47cc65d912 Merge branch '3.1.x'
Closes gh-36056
2023-06-23 16:12:58 -06:00
Eddú Meléndez 321c526bf7 Add SslAutoConfiguration to slice test annotations
`SslAutoConfiguration` has been added to `cassandra`, `couchbase`,
`elasticsearch`, `mongo` and `redis` slice test annotations.

See gh-36038
2023-06-23 15:51:42 -06:00
Scott Frederick c32877493c Merge branch '3.1.x'
Closes gh-36055
2023-06-23 15:47:00 -06:00
Scott Frederick b9b314622f Merge branch '3.0.x' into 3.1.x
Closes gh-36054
2023-06-23 15:46:44 -06:00
Scott Frederick 4a3abdd7c3 Merge branch '2.7.x' into 3.0.x
Closes gh-36053
2023-06-23 15:46:27 -06:00
Johnny Lim 59d4bf97a1 Add Javadoc since to ImageReference.inTaglessForm()
See gh-36048
2023-06-23 15:45:29 -06:00
Scott Frederick 67725d4781 Merge branch '3.1.x'
Closes gh-36052
2023-06-23 15:26:53 -06:00
James Stansell ea41a22284 Fix typo in docker compose service connections note
See gh-36016
2023-06-23 15:25:30 -06:00
Scott Frederick 90dd7449bb Merge branch '3.1.x'
Closes gh-36051
2023-06-23 15:20:25 -06:00
Scott Frederick 92b2573a60 Merge branch '3.0.x' into 3.1.x
Closes gh-36050
2023-06-23 15:20:06 -06:00
Scott Frederick eeeb2ad72a Merge branch '2.7.x' into 3.0.x
Closes gh-36049
2023-06-23 15:19:44 -06:00
Johnny Lim 4a2c9d99dc Remove redundant Files.delete() calls in tests
See gh-35986
2023-06-23 15:14:59 -06:00
Scott Frederick 493987fc1a Allow key password to be set for a PemSslStoreBundle
Closes gh-35983
2023-06-23 14:40:42 -06:00
Andy Wilkinson b645eb32ac Remove deprecated code that was to be removed in 3.2
Closes gh-36034
2023-06-23 18:14:22 +01:00
Andy Wilkinson 357c67a999 Merge branch '3.1.x' 2023-06-23 15:58:51 +01:00
Andy Wilkinson 3f7fe25cb9 Merge branch '3.0.x' into 3.1.x
Closes gh-36044
2023-06-23 15:58:36 +01:00
Andy Wilkinson 2fae5de245 Merge branch '2.7.x' into 3.0.x
Closes gh-36043
2023-06-23 15:50:02 +01:00
Andy Wilkinson d2966e1cbf Polish "Replace calls to verifyComplete() to avoid indefinite blocking"
See gh-35915
2023-06-23 12:38:12 +01:00
ThomazPassarelli f9da30faf1 Replace calls to verifyComplete() to avoid indefinite blocking
See gh-35915
2023-06-23 12:16:26 +01:00
Moritz Halbritter 8f7fdc507e Polish CorrelationIdFormatter 2023-06-23 08:26:32 +02:00
Jonatan Ivanov 228b8eb8e4
Polish log correlation docs
Docs related to gh-33280 (log correlation) and
gh-35593 (application name in each log line) need some polishing:
- Fix project names
- Show how to avoid having the application name duplicated in logs
- Call out that a trailing space is needed in the correlation pattern

Closes gh-36035
See gh-33280
See gh-35593
2023-06-22 14:51:02 -07:00
Phillip Webb 493777d3c9 Include the application name on each log line when it is available
Update Logback and Log4J2 so that they include the application name on
each log line. If `spring.application.name` had not been set, or if
`logging.include-application-name` is `false` then the name is not
logged.

Closes gh-35593
2023-06-22 00:40:51 -07:00
Jonatan Ivanov c1b295fd71 Log correlation IDs when Micrometer tracing is being used
Add support for logging correlation IDs with Logback or Log4J2 whenever
Micrometer tracing is being used.

The `LoggingSystemProperties` class now accepts a defualt value resolver
which will be used whenever a value isn't in the environment. The
`AbstractLoggingSystem` provides a resolver that supports the
`logging.pattern.correlation` property and will return a value whenever
`LoggingSystem.EXPECT_CORRELATION_ID_PROPERTY` is set.

Using `LoggingSystem.EXPECT_CORRELATION_ID_PROPERTY` allows us to
provide a consistent width for the correlation ID, even when it's
missing from the MDC.

The exact correlation pattern returned will depend on the `LoggingSytem`
implementation. Currently Logback and Log4J2 are supported and both
make use of a custom converter which delegates to a new
`CorrelationIdFormatter` class.

Closes gh-33280
2023-06-22 00:28:45 -07:00
Phillip Webb b6120d504a Replace LoggingSystemProperties constants with an Enum
Extract contants from `LoggingSystemProperty` and
`LogbackLoggingSystemProperties` in enum classes.

Closes gh-36015
2023-06-22 00:28:22 -07:00
Phillip Webb 3a796aedea Merge branch '3.1.x' 2023-06-22 00:28:01 -07:00
Phillip Webb 31f218c4e0 Merge branch '3.0.x' into 3.1.x 2023-06-22 00:27:51 -07:00
Phillip Webb 9db3c5a2f7 Polish 2023-06-22 00:24:39 -07:00
Phillip Webb 16265e925d Merge branch '3.1.x' 2023-06-21 23:44:18 -07:00
Phillip Webb 8ac5dc7ea3 Merge branch '3.0.x' into 3.1.x
Closes gh-36017
2023-06-21 23:44:06 -07:00
Phillip Webb f7af1bab5b Upgrade to Spring WS 4.0.5
Closes gh-36010
2023-06-21 23:40:28 -07:00
Phillip Webb 64525fb566 Merge branch '3.1.x' 2023-06-21 16:49:32 -07:00
Phillip Webb eb72d7e9f1 Merge branch '3.0.x' into 3.1.x 2023-06-21 16:49:24 -07:00
Phillip Webb 5c8ed944ca Start building against Spring WS 4.0.5 snapshots
See gh-36010
2023-06-21 16:49:12 -07:00
Andy Wilkinson f6841c3c16 Revert "Start building against Spring WS 3.1.7 snapshots"
This reverts commit 5e963b02a7.

See gh-35732
2023-06-21 20:55:10 +01:00
Phillip Webb 212acf44f7 Merge branch '3.1.x' 2023-06-21 12:28:20 -07:00
Phillip Webb 7a2fc9e636 Fix checkstyle violation
See gh-35914
2023-06-21 12:27:56 -07:00
Phillip Webb 2ce36b15b3 Merge branch '3.1.x' 2023-06-21 12:11:07 -07:00
Phillip Webb 3c7fbf3423 Polish 'Apply SslConfigurer in addition to configured mappers'
See gh-35914
2023-06-21 12:10:36 -07:00
Fernando Cappi e6b5322f3e Apply SslConfigurer in addition to configured mappers
Update `ReactorClientHttpConnectorFactory` to that SSL configuration
is applied in addition to any configured mappers.

Prior to this commit, SSL configuration would prevent configured
mappers from being applied.

See gh-35914
2023-06-21 12:10:36 -07:00
Andy Wilkinson 7f5351c7b0 Merge branch '3.1.x' 2023-06-21 19:06:32 +01:00
Andy Wilkinson b770ffc160 Fully prepare connection when using SSL bundle
Fixes gh-36007
2023-06-21 19:05:44 +01:00
Andy Wilkinson 295702003d Merge branch '3.1.x' 2023-06-21 15:29:38 +01:00
Andy Wilkinson 7266d4863b Merge branch '3.0.x' into 3.1.x
Closes gh-36009
2023-06-21 15:29:23 +01:00
Andy Wilkinson 39c382713b Initialize WebSocket infrastructure when using WebFlux and Jetty
In Spring Framework 5.x with Jetty 9, the reactive
JettyRequestUpgradeStrategy was able to initialize Jetty's WebSocket
infrastructure itself. With Jetty 10 this is no longer possible and
Boot must perform the initialization as part of preparing the
reactive JettyWebServer.

This commit updates the reactive WebSocket auto-configuration to
initialize Jetty's WebSocket infrastructure as part of creating the
reactive JettyWebServer.

Fixes gh-33347
2023-06-21 14:59:50 +01:00
Andy Wilkinson fc403f4f18 Merge branch '3.1.x' 2023-06-21 13:15:06 +01:00
Andy Wilkinson d3522a78a8 Merge branch '3.0.x' into 3.1.x 2023-06-21 13:14:46 +01:00
Andy Wilkinson 641f00f24c Disable test when Java version is too high
Gradle 7.3.3 does not support Java 20 so the test that verifies that
the plugin fails fast when running on a version of Gradle that it
does not support needs to be disabled on Java 20 and later.

See gh-35931
2023-06-21 13:12:20 +01:00
Andy Wilkinson 68aec97ee7 Merge branch '3.1.x' 2023-06-21 12:44:06 +01:00
Andy Wilkinson 5b69580d5d Merge branch '3.0.x' into 3.1.x
Closes gh-36004
2023-06-21 12:43:48 +01:00