Commit Graph

56 Commits (38fdef6ec4b9d2078f9af4e9dc3aa9bc8d3fef37)

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
1 year ago
Moritz Halbritter 23979e6ccf Enable LoaderIntegrationTests on Java 21 1 year ago
Moritz Halbritter 372af21313 Merge branch '2.7.x' into 3.0.x 1 year ago
Moritz Halbritter 140e806357 Enable LoaderIntegrationTests on Java 20
See gh-35758
1 year ago
Moritz Halbritter c2dd20f4ea Merge branch '2.7.x' into 3.0.x 2 years ago
Moritz Halbritter f5eb76074b Disable loader integration tests on aarch64 linux and mac
See gh-35229
2 years ago
Phillip Webb c4de86c244 Merge branch '2.7.x' into 3.0.x 2 years ago
Phillip Webb df5898a146 Reformat code following spring-javaformat upgrade 2 years ago
Stephane Nicoll 72fc1f0018 Merge branch '2.7.x'
Closes gh-32512
2 years ago
Johnny Lim 975affc497 Enable LoaderIntegrationTests with Java 19
See gh-32501
2 years ago
Andy Wilkinson a896fd0a36 Merge branch '2.7.x' 2 years ago
Andy Wilkinson 9fe9f31af1 Polish 2 years ago
Andy Wilkinson 144abee80a Merge branch '2.7.x' 2 years ago
Andy Wilkinson a262520f08 Disable LoaderIntegrationTests on Java 19 till it GAs
See gh-32280
2 years ago
Stephane Nicoll aa6e52f029 Merge branch '2.7.x' 2 years ago
Stephane Nicoll c3416ac97a Disable LoaderIntegrationTests with Java 19
See gh-32295
2 years ago
Phillip Webb 4ec2e357d9 Merge branch '2.7.x'
See gh-32086
2 years ago
Phillip Webb bd74344025 Revert "Don't close jar files early"
This reverts commit b42f056ddb.
2 years ago
Andy Wilkinson 3cf6dc25a8 Merge branch '2.7.x'
See gh-31403
2 years ago
Andy Wilkinson 252cf94332 Fix requiresUnpack following Bouncy Castle upgrade
See gh-31400
2 years ago
Andy Wilkinson d370d19e7a Merge branch '2.7.x'
Closes gh-31403
2 years ago
Lars Grefer e8a1a0399a Upgrade to Bouncycastle 1.71
Closes gh-31400
2 years ago
Phillip Webb d84557f1f9 Merge branch '2.7.x'
Closes gh-31396
2 years ago
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
2 years ago
Andy Wilkinson a59f60c614 Merge branch '2.7.x' 3 years ago
Andy Wilkinson e36ac6c155 Polish "Enable Java 18 for LoaderIntegrationTests"
See gh-30422
3 years ago
Eddú Meléndez e9c433a0b7 Enable Java 18 for LoaderIntegrationTests
See gh-30422
3 years ago
Andy Wilkinson 00193517f0 Merge branch '2.7.x' 3 years ago
Andy Wilkinson a58cd050e5 Disable LoaderIntegrationTests when all runtimes are incompatible
See gh-29524
3 years ago
Andy Wilkinson f5ca568014 Remove versions less than 17 from JavaVersion enum
Closes gh-29503
3 years ago
Andy Wilkinson 1fa541d4de Merge branch '2.7.x' 3 years ago
Andy Wilkinson b60612dabb Disable LoaderIntegrationTests when Docker's unavailable
Closes gh-29385
3 years ago
Phillip Webb 13f6729b37 Merge branch '2.7.x' 3 years ago
Phillip Webb eca05c42fb Further refine LoaderIntegrationTests for CI
Update `LoaderIntegrationTests` to filter compatible JDKs early.

See gh-29385
3 years ago
Phillip Webb e18cbe5fe2 Merge branch '2.7.x' 3 years ago
Phillip Webb de8f8c3e64 Refine LoaderIntegrationTests for CI
Refine `LoaderIntegrationTests` to fix failures when CI builds are
running with later JDK versions.

See gh-29385
3 years ago
Phillip Webb 2d1854a682 Merge branch '2.7.x' 3 years ago
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
3 years ago
Phillip Webb 003fb229fd Merge branch '2.7.x' 3 years ago
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
3 years ago
Andy Wilkinson 900085628a Raise the minimum supported version of Java to 17
Closes gh-28101
3 years ago
Andy Wilkinson 92fd3b79a5 Merge branch '2.4.x' into 2.5.x
Closes gh-28652
3 years ago
Andy Wilkinson 08aac25c00 Limit logging produced by spring-boot-loader-tests's intTest task
Closes gh-28651
3 years ago
Andy Wilkinson 322615d9c5 Merge branch '2.4.x' into 2.5.x
Closes gh-28199
3 years ago
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
3 years ago
dreis2211 a9a37f0dd5 Increase test coverage on Java 16
See gh-25809
4 years ago
Stephane Nicoll 6aaf9f47be Merge branch '2.4.x'
Closes gh-25524
4 years ago
dreis2211 1a803448f0 Exclude GradleBuild tasks on JDK 16 for now
See gh-25523
4 years ago
Andy Wilkinson db781a0d84 Merge branch '2.4.x'
See gh-25077
4 years ago
Andy Wilkinson 67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
4 years ago