Commit Graph

56 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
Moritz Halbritter
23979e6ccf Enable LoaderIntegrationTests on Java 21 2023-06-15 10:13:19 +02:00
Moritz Halbritter
372af21313 Merge branch '2.7.x' into 3.0.x 2023-06-07 10:17:14 +02:00
Moritz Halbritter
140e806357 Enable LoaderIntegrationTests on Java 20
See gh-35758
2023-06-07 10:16:54 +02:00
Moritz Halbritter
c2dd20f4ea Merge branch '2.7.x' into 3.0.x 2023-05-03 13:07:00 +02:00
Moritz Halbritter
f5eb76074b Disable loader integration tests on aarch64 linux and mac
See gh-35229
2023-05-03 11:32:39 +02:00
Phillip Webb
c4de86c244 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:17:57 -08:00
Phillip Webb
df5898a146 Reformat code following spring-javaformat upgrade 2023-02-21 22:53:27 -08:00
Stephane Nicoll
72fc1f0018 Merge branch '2.7.x'
Closes gh-32512
2022-09-27 08:30:44 +02:00
Johnny Lim
975affc497 Enable LoaderIntegrationTests with Java 19
See gh-32501
2022-09-27 08:30:13 +02:00
Andy Wilkinson
a896fd0a36 Merge branch '2.7.x' 2022-09-10 09:38:18 +01:00
Andy Wilkinson
9fe9f31af1 Polish 2022-09-10 09:38:03 +01:00
Andy Wilkinson
144abee80a Merge branch '2.7.x' 2022-09-10 09:35:08 +01:00
Andy Wilkinson
a262520f08 Disable LoaderIntegrationTests on Java 19 till it GAs
See gh-32280
2022-09-10 09:34:51 +01:00
Stephane Nicoll
aa6e52f029 Merge branch '2.7.x' 2022-09-10 10:32:20 +02:00
Stephane Nicoll
c3416ac97a Disable LoaderIntegrationTests with Java 19
See gh-32295
2022-09-10 10:31:48 +02:00
Phillip Webb
4ec2e357d9 Merge branch '2.7.x'
See gh-32086
2022-08-17 12:49:52 -07:00
Phillip Webb
bd74344025 Revert "Don't close jar files early"
This reverts commit b42f056ddb.
2022-08-17 11:38:42 -07:00
Andy Wilkinson
3cf6dc25a8 Merge branch '2.7.x'
See gh-31403
2022-06-16 17:34:23 +01:00
Andy Wilkinson
252cf94332 Fix requiresUnpack following Bouncy Castle upgrade
See gh-31400
2022-06-16 17:32:40 +01:00
Andy Wilkinson
d370d19e7a Merge branch '2.7.x'
Closes gh-31403
2022-06-16 12:14:52 +01:00
Lars Grefer
e8a1a0399a Upgrade to Bouncycastle 1.71
Closes gh-31400
2022-06-16 12:14:06 +01:00
Phillip Webb
d84557f1f9 Merge branch '2.7.x'
Closes gh-31396
2022-06-15 10:53:17 -07:00
Phillip Webb
b42f056ddb Don't close jar files early
Update `JarFile` and related classes so that `close()` is not longer
called early.

Prior to this commit, we would always immediately close the underlying
jar file to prevent file locking issues with our build. This causes
issues on certain JVMs when they attempt to verify a signed jar.

The file lock issues have now been solved by returning a custom input
stream from `JarUrlConnection` which captures and delegates the close
method.

Fixes gh-29356
2022-06-15 10:51:01 -07:00
Andy Wilkinson
a59f60c614 Merge branch '2.7.x' 2022-03-25 11:15:08 +00:00
Andy Wilkinson
e36ac6c155 Polish "Enable Java 18 for LoaderIntegrationTests"
See gh-30422
2022-03-25 11:02:57 +00:00
Eddú Meléndez
e9c433a0b7 Enable Java 18 for LoaderIntegrationTests
See gh-30422
2022-03-25 11:02:42 +00:00
Andy Wilkinson
00193517f0 Merge branch '2.7.x' 2022-03-09 15:38:00 +00:00
Andy Wilkinson
a58cd050e5 Disable LoaderIntegrationTests when all runtimes are incompatible
See gh-29524
2022-03-09 15:36:53 +00:00
Andy Wilkinson
f5ca568014 Remove versions less than 17 from JavaVersion enum
Closes gh-29503
2022-03-09 15:16:59 +00:00
Andy Wilkinson
1fa541d4de Merge branch '2.7.x' 2022-01-19 17:24:42 +00:00
Andy Wilkinson
b60612dabb Disable LoaderIntegrationTests when Docker's unavailable
Closes gh-29385
2022-01-19 17:23:30 +00:00
Phillip Webb
13f6729b37 Merge branch '2.7.x' 2022-01-18 18:49:08 -08:00
Phillip Webb
eca05c42fb Further refine LoaderIntegrationTests for CI
Update `LoaderIntegrationTests` to filter compatible JDKs early.

See gh-29385
2022-01-18 18:47:41 -08:00
Phillip Webb
e18cbe5fe2 Merge branch '2.7.x' 2022-01-18 18:19:46 -08:00
Phillip Webb
de8f8c3e64 Refine LoaderIntegrationTests for CI
Refine `LoaderIntegrationTests` to fix failures when CI builds are
running with later JDK versions.

See gh-29385
2022-01-18 18:16:47 -08:00
Phillip Webb
2d1854a682 Merge branch '2.7.x' 2022-01-18 17:42:34 -08:00
Phillip Webb
3d908079ef Run LoaderIntegrationTests against multiple JDKs
Update `LoaderIntegrationTests` to run against OpenJDK 8, 11 and 17 as
well as Oracle JDK 17.

Closes gh-29385
2022-01-18 17:36:48 -08:00
Phillip Webb
003fb229fd Merge branch '2.7.x' 2021-12-16 13:07:22 -08:00
Andy Wilkinson
fe7b13ec46 Upgrade to Spring Framework 6 and Jakarta EE 9
Closes gh-28619
Closes gh-28620
Closes gh-28621
Closes gh-28622
Closes gh-28623
Closes gh-28624
Closes gh-28625
Closes gh-28626
Closes gh-28627
Closes gh-28628
Closes gh-28629
Closes gh-28630
Closes gh-28631
Closes gh-28632
Closes gh-28633
Closes gh-28634
Closes gh-28635
Closes gh-28636
Closes gh-28638
Closes gh-28639
Closes gh-28640
Closes gh-28644
Closes gh-28645
Closes gh-28650
Closes gh-28711
Closes gh-28866
Closes gh-28867
Closes gh-28868
Closes gh-28872

See gh-28641
See gh-28642
See gh-28643
See gh-28646
See gh-28647
See gh-28648
See gh-28649
See gh-28721
See gh-28869
See gh-28871
2021-11-30 20:32:16 +00:00
Andy Wilkinson
900085628a Raise the minimum supported version of Java to 17
Closes gh-28101
2021-11-30 15:37:40 +00:00
Andy Wilkinson
92fd3b79a5 Merge branch '2.4.x' into 2.5.x
Closes gh-28652
2021-11-12 13:05:14 +00:00
Andy Wilkinson
08aac25c00 Limit logging produced by spring-boot-loader-tests's intTest task
Closes gh-28651
2021-11-12 13:04:10 +00:00
Andy Wilkinson
322615d9c5 Merge branch '2.4.x' into 2.5.x
Closes gh-28199
2021-10-05 11:12:48 +01:00
Andy Wilkinson
8c3820f87e Fix up-to-date checking of syncAppSource tasks
Previously, the project version was used while filtering the apps
source during syncing but it was not considered as an input to
the task. This could result in the syncing being skipped even though
the project's version had changed.

This commit introduces a new custom task to make the configuration
more declarative and to allow the necessary input configuration to be
done in a single place.

Closes gh-28197
2021-10-05 11:08:22 +01:00
dreis2211
a9a37f0dd5 Increase test coverage on Java 16
See gh-25809
2021-03-26 19:38:54 +00:00
Stephane Nicoll
6aaf9f47be Merge branch '2.4.x'
Closes gh-25524
2021-03-06 08:16:35 +01:00
dreis2211
1a803448f0 Exclude GradleBuild tasks on JDK 16 for now
See gh-25523
2021-03-06 08:15:56 +01:00
Andy Wilkinson
db781a0d84 Merge branch '2.4.x'
See gh-25077
2021-02-02 15:14:18 +00:00
Andy Wilkinson
67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
2021-02-02 13:03:21 +00:00