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
5e22b421
Commit
5e22b421
authored
Mar 29, 2019
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.1.x'
parents
270554d3
6aa78801
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
68 additions
and
8 deletions
+68
-8
pom.xml
spring-boot-project/spring-boot-dependencies/pom.xml
+1
-1
spring-boot-features.adoc
...ing-boot-docs/src/main/asciidoc/spring-boot-features.adoc
+0
-7
TomcatServletWebServerFactory.java
...ot/web/embedded/tomcat/TomcatServletWebServerFactory.java
+6
-0
TomcatServletWebServerFactoryTests.java
...b/embedded/tomcat/TomcatServletWebServerFactoryTests.java
+61
-0
No files found.
spring-boot-project/spring-boot-dependencies/pom.xml
View file @
5e22b421
...
@@ -202,7 +202,7 @@
...
@@ -202,7 +202,7 @@
<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.3.RELEASE
</thymeleaf-extras-java8time.version>
<thymeleaf-extras-java8time.version>
3.0.3.RELEASE
</thymeleaf-extras-java8time.version>
<tomcat.version>
9.0.1
6
</tomcat.version>
<tomcat.version>
9.0.1
7
</tomcat.version>
<unboundid-ldapsdk.version>
4.0.9
</unboundid-ldapsdk.version>
<unboundid-ldapsdk.version>
4.0.9
</unboundid-ldapsdk.version>
<undertow.version>
2.0.19.Final
</undertow.version>
<undertow.version>
2.0.19.Final
</undertow.version>
<webjars-hal-browser.version>
3325375
</webjars-hal-browser.version>
<webjars-hal-browser.version>
3325375
</webjars-hal-browser.version>
...
...
spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
View file @
5e22b421
...
@@ -3207,13 +3207,6 @@ https://github.com/undertow-io/undertow[Undertow] servers. Most developers use t
...
@@ -3207,13 +3207,6 @@ https://github.com/undertow-io/undertow[Undertow] servers. Most developers use t
appropriate "`Starter`" to obtain a fully configured instance. By default, the embedded
appropriate "`Starter`" to obtain a fully configured instance. By default, the embedded
server listens for HTTP requests on port `8080`.
server listens for HTTP requests on port `8080`.
WARNING: If you choose to use Tomcat on https://www.centos.org/[CentOS], be aware that, by
default, a temporary directory is used to store compiled JSPs, file uploads, and so on.
This directory may be deleted by `tmpwatch` while your application is running, leading to
failures. To avoid this behavior, you may want to customize your `tmpwatch` configuration
such that `tomcat.*` directories are not deleted or configure `server.tomcat.basedir` such
that embedded Tomcat uses a different location.
[[boot-features-embedded-container-servlets-filters-listeners]]
[[boot-features-embedded-container-servlets-filters-listeners]]
...
...
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactory.java
View file @
5e22b421
...
@@ -200,6 +200,12 @@ public class TomcatServletWebServerFactory extends AbstractServletWebServerFacto
...
@@ -200,6 +200,12 @@ public class TomcatServletWebServerFactory extends AbstractServletWebServerFacto
resetDefaultLocaleMapping
(
context
);
resetDefaultLocaleMapping
(
context
);
addLocaleMappings
(
context
);
addLocaleMappings
(
context
);
context
.
setUseRelativeRedirects
(
false
);
context
.
setUseRelativeRedirects
(
false
);
try
{
context
.
setCreateUploadTargets
(
true
);
}
catch
(
NoSuchMethodError
ex
)
{
// Tomcat is < 8.5.39. Continue.
}
configureTldSkipPatterns
(
context
);
configureTldSkipPatterns
(
context
);
WebappLoader
loader
=
new
WebappLoader
(
context
.
getParentClassLoader
());
WebappLoader
loader
=
new
WebappLoader
(
context
.
getParentClassLoader
());
loader
.
setLoaderClass
(
TomcatEmbeddedWebappClassLoader
.
class
.
getName
());
loader
.
setLoaderClass
(
TomcatEmbeddedWebappClassLoader
.
class
.
getName
());
...
...
spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/tomcat/TomcatServletWebServerFactoryTests.java
View file @
5e22b421
...
@@ -18,6 +18,7 @@ package org.springframework.boot.web.embedded.tomcat;
...
@@ -18,6 +18,7 @@ package org.springframework.boot.web.embedded.tomcat;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.net.URL
;
import
java.net.URL
;
import
java.nio.charset.Charset
;
import
java.nio.charset.Charset
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
...
@@ -26,10 +27,17 @@ import java.util.Arrays;
...
@@ -26,10 +27,17 @@ import java.util.Arrays;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Locale
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.concurrent.atomic.AtomicReference
;
import
javax.naming.InitialContext
;
import
javax.naming.InitialContext
;
import
javax.naming.NamingException
;
import
javax.naming.NamingException
;
import
javax.servlet.MultipartConfigElement
;
import
javax.servlet.ServletContext
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletRegistration.Dynamic
;
import
javax.servlet.http.HttpServlet
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.catalina.Container
;
import
org.apache.catalina.Container
;
import
org.apache.catalina.Context
;
import
org.apache.catalina.Context
;
...
@@ -58,9 +66,20 @@ import org.mockito.InOrder;
...
@@ -58,9 +66,20 @@ import org.mockito.InOrder;
import
org.springframework.boot.testsupport.rule.OutputCapture
;
import
org.springframework.boot.testsupport.rule.OutputCapture
;
import
org.springframework.boot.web.server.WebServerException
;
import
org.springframework.boot.web.server.WebServerException
;
import
org.springframework.boot.web.servlet.ServletContextInitializer
;
import
org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory
;
import
org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory
;
import
org.springframework.boot.web.servlet.server.AbstractServletWebServerFactoryTests
;
import
org.springframework.boot.web.servlet.server.AbstractServletWebServerFactoryTests
;
import
org.springframework.core.io.ByteArrayResource
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.test.util.ReflectionTestUtils
;
import
org.springframework.test.util.ReflectionTestUtils
;
import
org.springframework.util.FileSystemUtils
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.client.RestTemplate
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThatExceptionOfType
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThatExceptionOfType
;
...
@@ -457,6 +476,48 @@ public class TomcatServletWebServerFactoryTests
...
@@ -457,6 +476,48 @@ public class TomcatServletWebServerFactoryTests
assertThat
(
context
.
getClearReferencesThreadLocals
()).
isFalse
();
assertThat
(
context
.
getClearReferencesThreadLocals
()).
isFalse
();
}
}
@Test
public
void
nonExistentUploadDirectoryIsCreatedUponMultipartUpload
()
throws
IOException
,
URISyntaxException
{
TomcatServletWebServerFactory
factory
=
new
TomcatServletWebServerFactory
(
0
);
AtomicReference
<
ServletContext
>
servletContextReference
=
new
AtomicReference
<>();
factory
.
addInitializers
(
new
ServletContextInitializer
()
{
@Override
public
void
onStartup
(
ServletContext
servletContext
)
throws
ServletException
{
servletContextReference
.
set
(
servletContext
);
Dynamic
servlet
=
servletContext
.
addServlet
(
"upload"
,
new
HttpServlet
()
{
@Override
protected
void
doPost
(
HttpServletRequest
req
,
HttpServletResponse
resp
)
throws
ServletException
,
IOException
{
req
.
getParts
();
}
});
servlet
.
addMapping
(
"/upload"
);
servlet
.
setMultipartConfig
(
new
MultipartConfigElement
((
String
)
null
));
}
});
this
.
webServer
=
factory
.
getWebServer
();
this
.
webServer
.
start
();
File
temp
=
(
File
)
servletContextReference
.
get
()
.
getAttribute
(
ServletContext
.
TEMPDIR
);
FileSystemUtils
.
deleteRecursively
(
temp
);
RestTemplate
restTemplate
=
new
RestTemplate
();
HttpHeaders
headers
=
new
HttpHeaders
();
MultiValueMap
<
String
,
Object
>
body
=
new
LinkedMultiValueMap
<>();
body
.
add
(
"file"
,
new
ByteArrayResource
(
new
byte
[
1024
*
1024
]));
headers
.
setContentType
(
MediaType
.
MULTIPART_FORM_DATA
);
HttpEntity
<
MultiValueMap
<
String
,
Object
>>
requestEntity
=
new
HttpEntity
<>(
body
,
headers
);
ResponseEntity
<
String
>
response
=
restTemplate
.
postForEntity
(
getLocalUrl
(
"/upload"
),
requestEntity
,
String
.
class
);
assertThat
(
response
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
OK
);
}
@Override
@Override
protected
JspServlet
getJspServlet
()
throws
ServletException
{
protected
JspServlet
getJspServlet
()
throws
ServletException
{
Tomcat
tomcat
=
((
TomcatWebServer
)
this
.
webServer
).
getTomcat
();
Tomcat
tomcat
=
((
TomcatWebServer
)
this
.
webServer
).
getTomcat
();
...
...
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