Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
45fdf2ff
Commit
45fdf2ff
authored
May 29, 2018
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support Tomcat 9 and Undertow 2
Closes gh-11749 Closes gh-12243
parent
b4cd4f4c
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
30 additions
and
26 deletions
+30
-26
pom.xml
spring-boot-project/spring-boot-dependencies/pom.xml
+3
-3
getting-started.adoc
...t/spring-boot-docs/src/main/asciidoc/getting-started.adoc
+4
-4
howto.adoc
...oot-project/spring-boot-docs/src/main/asciidoc/howto.adoc
+11
-9
spring-boot-features.adoc
...ing-boot-docs/src/main/asciidoc/spring-boot-features.adoc
+3
-3
pom.xml
...ct/spring-boot-starters/spring-boot-starter-jetty/pom.xml
+1
-0
pom.xml
...spring-boot-starters/spring-boot-starter-undertow/pom.xml
+1
-1
Verify.java
.../src/test/java/org/springframework/boot/maven/Verify.java
+3
-3
TomcatServletWebServerFactoryTests.java
...b/embedded/tomcat/TomcatServletWebServerFactoryTests.java
+1
-3
pom.xml
spring-boot-samples/spring-boot-sample-jetty-jsp/pom.xml
+1
-0
pom.xml
spring-boot-samples/spring-boot-sample-jetty-ssl/pom.xml
+1
-0
pom.xml
spring-boot-samples/spring-boot-sample-jetty/pom.xml
+1
-0
No files found.
spring-boot-project/spring-boot-dependencies/pom.xml
View file @
45fdf2ff
...
@@ -147,7 +147,7 @@
...
@@ -147,7 +147,7 @@
<selenium.version>
3.9.1
</selenium.version>
<selenium.version>
3.9.1
</selenium.version>
<selenium-htmlunit.version>
2.29.3
</selenium-htmlunit.version>
<selenium-htmlunit.version>
2.29.3
</selenium-htmlunit.version>
<sendgrid.version>
4.1.2
</sendgrid.version>
<sendgrid.version>
4.1.2
</sendgrid.version>
<servlet-api.version>
3.1.0
</servlet-api.version>
<servlet-api.version>
4.0.1
</servlet-api.version>
<slf4j.version>
1.7.25
</slf4j.version>
<slf4j.version>
1.7.25
</slf4j.version>
<snakeyaml.version>
1.19
</snakeyaml.version>
<snakeyaml.version>
1.19
</snakeyaml.version>
<solr.version>
7.2.1
</solr.version>
<solr.version>
7.2.1
</solr.version>
...
@@ -175,9 +175,9 @@
...
@@ -175,9 +175,9 @@
<thymeleaf-layout-dialect.version>
2.3.0
</thymeleaf-layout-dialect.version>
<thymeleaf-layout-dialect.version>
2.3.0
</thymeleaf-layout-dialect.version>
<thymeleaf-extras-data-attribute.version>
2.0.1
</thymeleaf-extras-data-attribute.version>
<thymeleaf-extras-data-attribute.version>
2.0.1
</thymeleaf-extras-data-attribute.version>
<thymeleaf-extras-java8time.version>
3.0.1.RELEASE
</thymeleaf-extras-java8time.version>
<thymeleaf-extras-java8time.version>
3.0.1.RELEASE
</thymeleaf-extras-java8time.version>
<tomcat.version>
8.5.31
</tomcat.version>
<tomcat.version>
9.0.10
</tomcat.version>
<unboundid-ldapsdk.version>
4.0.6
</unboundid-ldapsdk.version>
<unboundid-ldapsdk.version>
4.0.6
</unboundid-ldapsdk.version>
<undertow.version>
1.4.25
.Final
</undertow.version>
<undertow.version>
2.0.9
.Final
</undertow.version>
<webjars-hal-browser.version>
3325375
</webjars-hal-browser.version>
<webjars-hal-browser.version>
3325375
</webjars-hal-browser.version>
<webjars-locator-core.version>
0.35
</webjars-locator-core.version>
<webjars-locator-core.version>
0.35
</webjars-locator-core.version>
<wsdl4j.version>
1.6.3
</wsdl4j.version>
<wsdl4j.version>
1.6.3
</wsdl4j.version>
...
...
spring-boot-project/spring-boot-docs/src/main/asciidoc/getting-started.adoc
View file @
45fdf2ff
...
@@ -51,14 +51,14 @@ Spring Boot supports the following embedded servlet containers:
...
@@ -51,14 +51,14 @@ Spring Boot supports the following embedded servlet containers:
|===
|===
|Name |Servlet Version
|Name |Servlet Version
|Tomcat
8.5
|Tomcat
9.0
|
3.1
|
4.0
|Jetty 9.4
|Jetty 9.4
|3.1
|3.1
|Undertow
1.4
|Undertow
2.0
|
3.1
|
4.0
|===
|===
You can also deploy Spring Boot applications to any Servlet 3.1+ compatible container.
You can also deploy Spring Boot applications to any Servlet 3.1+ compatible container.
...
...
spring-boot-project/spring-boot-docs/src/main/asciidoc/howto.adoc
View file @
45fdf2ff
...
@@ -523,6 +523,9 @@ The following Maven example shows how to exclude Tomcat and include Jetty for Sp
...
@@ -523,6 +523,9 @@ The following Maven example shows how to exclude Tomcat and include Jetty for Sp
[source,xml,indent=0,subs="verbatim,quotes,attributes"]
[source,xml,indent=0,subs="verbatim,quotes,attributes"]
----
----
<properties>
<servlet-api.version>3.1.0</servlet-api.version>
</properties>
<dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<artifactId>spring-boot-starter-web</artifactId>
...
@@ -541,6 +544,9 @@ The following Maven example shows how to exclude Tomcat and include Jetty for Sp
...
@@ -541,6 +544,9 @@ The following Maven example shows how to exclude Tomcat and include Jetty for Sp
</dependency>
</dependency>
----
----
NOTE: The version of the Servlet API has been overridden as, unlike Tomcat 9 and Undertow
2.0, Jetty 9.4 does not support Servlet 4.0.
The following Gradle example shows how to exclude Netty and include Undertow for Spring
The following Gradle example shows how to exclude Netty and include Undertow for Spring
WebFlux:
WebFlux:
...
@@ -727,16 +733,16 @@ To enable that support, your application needs to have two additional dependenci
...
@@ -727,16 +733,16 @@ To enable that support, your application needs to have two additional dependenci
[[howto-configure-http2-tomcat]]
[[howto-configure-http2-tomcat]]
==== HTTP/2 with Tomcat
==== HTTP/2 with Tomcat
Spring Boot ships by default with Tomcat
8.5.x. With that version, HTTP/2 is only
Spring Boot ships by default with Tomcat
9.0.x which supports HTTP/2 out of the box when
supported if the `libtcnative` library and its dependencies are installed on the host
using JDK 9 or later. Alternatively, HTTP/2 can be used on JDK 8 if the `libtcnative`
operating system.
library and its dependencies are installed on the host
operating system.
The library folder must be made available, if not already, to the JVM library path. You
The library folder must be made available, if not already, to the JVM library path. You
can do so with a JVM argument such as
can do so with a JVM argument such as
`-Djava.library.path=/usr/local/opt/tomcat-native/lib`. More on this in the
`-Djava.library.path=/usr/local/opt/tomcat-native/lib`. More on this in the
https://tomcat.apache.org/tomcat-
8.5
-doc/apr.html[official Tomcat documentation].
https://tomcat.apache.org/tomcat-
9.0
-doc/apr.html[official Tomcat documentation].
Starting Tomcat
8.5.x
without that native support logs the following error:
Starting Tomcat
9.0.x on JDK 8
without that native support logs the following error:
[indent=0,subs="attributes"]
[indent=0,subs="attributes"]
----
----
...
@@ -745,10 +751,6 @@ Starting Tomcat 8.5.x without that native support logs the following error:
...
@@ -745,10 +751,6 @@ Starting Tomcat 8.5.x without that native support logs the following error:
This error is not fatal, and the application still starts with HTTP/1.1 SSL support.
This error is not fatal, and the application still starts with HTTP/1.1 SSL support.
Running your application with Tomcat 9.0.x and JDK9 does not require any native library to
be installed. To use Tomcat 9, you can override the `tomcat.version` build property with
the version of your choice.
[[howto-configure-webserver]]
[[howto-configure-webserver]]
...
...
spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
View file @
45fdf2ff
...
@@ -7409,9 +7409,9 @@ include::{test-examples}/web/client/SampleWebClientTests.java[tag=test]
...
@@ -7409,9 +7409,9 @@ include::{test-examples}/web/client/SampleWebClientTests.java[tag=test]
[[boot-features-websockets]]
[[boot-features-websockets]]
== WebSockets
== WebSockets
Spring Boot provides WebSockets auto-configuration for embedded Tomcat
8.5, Jetty
Spring Boot provides WebSockets auto-configuration for embedded Tomcat
, Jetty, and
9, and Undertow. If you deploy a war file to a standalone container, Spring Boot assumes
Undertow. If you deploy a war file to a standalone container, Spring Boot assumes that the
that the
container is responsible for the configuration of its WebSocket support.
container is responsible for the configuration of its WebSocket support.
Spring Framework provides {spring-reference}web.html#websocket[rich WebSocket support]
Spring Framework provides {spring-reference}web.html#websocket[rich WebSocket support]
that can be easily accessed through the `spring-boot-starter-websocket` module.
that can be easily accessed through the `spring-boot-starter-websocket` module.
...
...
spring-boot-project/spring-boot-starters/spring-boot-starter-jetty/pom.xml
View file @
45fdf2ff
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
alternative to spring-boot-starter-tomcat
</description>
alternative to spring-boot-starter-tomcat
</description>
<properties>
<properties>
<main.basedir>
${basedir}/../../..
</main.basedir>
<main.basedir>
${basedir}/../../..
</main.basedir>
<servlet-api.version>
3.1.0
</servlet-api.version>
</properties>
</properties>
<dependencies>
<dependencies>
<dependency>
<dependency>
...
...
spring-boot-project/spring-boot-starters/spring-boot-starter-undertow/pom.xml
View file @
45fdf2ff
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
<exclusions>
<exclusions>
<exclusion>
<exclusion>
<groupId>
org.jboss.spec.javax.servlet
</groupId>
<groupId>
org.jboss.spec.javax.servlet
</groupId>
<artifactId>
jboss-servlet-api_
3.1
_spec
</artifactId>
<artifactId>
jboss-servlet-api_
4.0
_spec
</artifactId>
</exclusion>
</exclusion>
</exclusions>
</exclusions>
</dependency>
</dependency>
...
...
spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/test/java/org/springframework/boot/maven/Verify.java
View file @
45fdf2ff
...
@@ -230,7 +230,7 @@ public final class Verify {
...
@@ -230,7 +230,7 @@ public final class Verify {
super
.
verifyZipEntries
(
verifier
);
super
.
verifyZipEntries
(
verifier
);
verifier
.
assertHasEntryNameStartingWith
(
"BOOT-INF/lib/spring-context"
);
verifier
.
assertHasEntryNameStartingWith
(
"BOOT-INF/lib/spring-context"
);
verifier
.
assertHasEntryNameStartingWith
(
"BOOT-INF/lib/spring-core"
);
verifier
.
assertHasEntryNameStartingWith
(
"BOOT-INF/lib/spring-core"
);
verifier
.
assertHasEntryNameStartingWith
(
"BOOT-INF/lib/javax.servlet-api-
3
"
);
verifier
.
assertHasEntryNameStartingWith
(
"BOOT-INF/lib/javax.servlet-api-
4
"
);
assertThat
(
verifier
assertThat
(
verifier
.
hasEntry
(
"org/springframework/boot/loader/JarLauncher.class"
))
.
hasEntry
(
"org/springframework/boot/loader/JarLauncher.class"
))
.
as
(
"Unpacked launcher classes"
).
isTrue
();
.
as
(
"Unpacked launcher classes"
).
isTrue
();
...
@@ -263,7 +263,7 @@ public final class Verify {
...
@@ -263,7 +263,7 @@ public final class Verify {
verifier
.
assertHasEntryNameStartingWith
(
"WEB-INF/lib/spring-context"
);
verifier
.
assertHasEntryNameStartingWith
(
"WEB-INF/lib/spring-context"
);
verifier
.
assertHasEntryNameStartingWith
(
"WEB-INF/lib/spring-core"
);
verifier
.
assertHasEntryNameStartingWith
(
"WEB-INF/lib/spring-core"
);
verifier
.
assertHasEntryNameStartingWith
(
verifier
.
assertHasEntryNameStartingWith
(
"WEB-INF/lib-provided/javax.servlet-api-
3
"
);
"WEB-INF/lib-provided/javax.servlet-api-
4
"
);
assertThat
(
verifier
assertThat
(
verifier
.
hasEntry
(
"org/"
+
"springframework/boot/loader/JarLauncher.class"
))
.
hasEntry
(
"org/"
+
"springframework/boot/loader/JarLauncher.class"
))
.
as
(
"Unpacked launcher classes"
).
isTrue
();
.
as
(
"Unpacked launcher classes"
).
isTrue
();
...
@@ -314,7 +314,7 @@ public final class Verify {
...
@@ -314,7 +314,7 @@ public final class Verify {
super
.
verifyZipEntries
(
verifier
);
super
.
verifyZipEntries
(
verifier
);
verifier
.
assertHasEntryNameStartingWith
(
"lib/spring-context"
);
verifier
.
assertHasEntryNameStartingWith
(
"lib/spring-context"
);
verifier
.
assertHasEntryNameStartingWith
(
"lib/spring-core"
);
verifier
.
assertHasEntryNameStartingWith
(
"lib/spring-core"
);
verifier
.
assertHasNoEntryNameStartingWith
(
"lib/javax.servlet-api
-3
"
);
verifier
.
assertHasNoEntryNameStartingWith
(
"lib/javax.servlet-api"
);
assertThat
(
verifier
assertThat
(
verifier
.
hasEntry
(
"org/"
+
"springframework/boot/loader/JarLauncher.class"
))
.
hasEntry
(
"org/"
+
"springframework/boot/loader/JarLauncher.class"
))
.
as
(
"Unpacked launcher classes"
).
isFalse
();
.
as
(
"Unpacked launcher classes"
).
isFalse
();
...
...
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactoryTests.java
View file @
45fdf2ff
...
@@ -63,7 +63,6 @@ import org.springframework.test.util.ReflectionTestUtils;
...
@@ -63,7 +63,6 @@ import org.springframework.test.util.ReflectionTestUtils;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
junit
.
Assert
.
fail
;
import
static
org
.
junit
.
Assert
.
fail
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
BDDMockito
.
given
;
import
static
org
.
mockito
.
Mockito
.
inOrder
;
import
static
org
.
mockito
.
Mockito
.
inOrder
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
import
static
org
.
mockito
.
Mockito
.
verify
;
...
@@ -181,8 +180,7 @@ public class TomcatServletWebServerFactoryTests
...
@@ -181,8 +180,7 @@ public class TomcatServletWebServerFactoryTests
TomcatServletWebServerFactory
factory
=
getFactory
();
TomcatServletWebServerFactory
factory
=
getFactory
();
Connector
[]
listeners
=
new
Connector
[
4
];
Connector
[]
listeners
=
new
Connector
[
4
];
for
(
int
i
=
0
;
i
<
listeners
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
listeners
.
length
;
i
++)
{
Connector
connector
=
mock
(
Connector
.
class
);
Connector
connector
=
new
Connector
();
given
(
connector
.
getState
()).
willReturn
(
LifecycleState
.
STOPPED
);
listeners
[
i
]
=
connector
;
listeners
[
i
]
=
connector
;
}
}
factory
.
addAdditionalTomcatConnectors
(
listeners
);
factory
.
addAdditionalTomcatConnectors
(
listeners
);
...
...
spring-boot-samples/spring-boot-sample-jetty-jsp/pom.xml
View file @
45fdf2ff
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +15,7 @@
<properties>
<properties>
<main.basedir>
${basedir}/../..
</main.basedir>
<main.basedir>
${basedir}/../..
</main.basedir>
<m2eclipse.wtp.contextRoot>
/
</m2eclipse.wtp.contextRoot>
<m2eclipse.wtp.contextRoot>
/
</m2eclipse.wtp.contextRoot>
<servlet-api.version>
3.1.0
</servlet-api.version>
</properties>
</properties>
<dependencies>
<dependencies>
<!-- Compile -->
<!-- Compile -->
...
...
spring-boot-samples/spring-boot-sample-jetty-ssl/pom.xml
View file @
45fdf2ff
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
<description>
Spring Boot Jetty SSL Sample
</description>
<description>
Spring Boot Jetty SSL Sample
</description>
<properties>
<properties>
<main.basedir>
${basedir}/../..
</main.basedir>
<main.basedir>
${basedir}/../..
</main.basedir>
<servlet-api.version>
3.1.0
</servlet-api.version>
</properties>
</properties>
<dependencies>
<dependencies>
<!-- Compile -->
<!-- Compile -->
...
...
spring-boot-samples/spring-boot-sample-jetty/pom.xml
View file @
45fdf2ff
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
<description>
Spring Boot Jetty Sample
</description>
<description>
Spring Boot Jetty Sample
</description>
<properties>
<properties>
<main.basedir>
${basedir}/../..
</main.basedir>
<main.basedir>
${basedir}/../..
</main.basedir>
<servlet-api.version>
3.1.0
</servlet-api.version>
</properties>
</properties>
<dependencies>
<dependencies>
<!-- Compile -->
<!-- Compile -->
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment