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
bd4c6e51
Commit
bd4c6e51
authored
Jan 07, 2021
by
Scott Frederick
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.4.x'
Closes gh-24687
parents
bd027de7
ef7a8275
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
91 additions
and
2 deletions
+91
-2
WebMvcAutoConfiguration.java
...ot/autoconfigure/web/servlet/WebMvcAutoConfiguration.java
+18
-1
WebMvcAutoConfigurationTests.java
...toconfigure/web/servlet/WebMvcAutoConfigurationTests.java
+73
-1
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration.java
View file @
bd4c6e51
/*
* Copyright 2012-202
0
the original author or authors.
* Copyright 2012-202
1
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -92,8 +92,10 @@ import org.springframework.web.filter.FormContentFilter;
import
org.springframework.web.filter.HiddenHttpMethodFilter
;
import
org.springframework.web.filter.RequestContextFilter
;
import
org.springframework.web.servlet.DispatcherServlet
;
import
org.springframework.web.servlet.FlashMapManager
;
import
org.springframework.web.servlet.HandlerExceptionResolver
;
import
org.springframework.web.servlet.LocaleResolver
;
import
org.springframework.web.servlet.ThemeResolver
;
import
org.springframework.web.servlet.View
;
import
org.springframework.web.servlet.ViewResolver
;
import
org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer
;
...
...
@@ -134,6 +136,7 @@ import org.springframework.web.util.pattern.PathPatternParser;
* @author Kristine Jetzke
* @author Bruce Brouwer
* @author Artsiom Yudovin
* @author Scott Frederick
* @since 2.0.0
*/
@Configuration
(
proxyBeanMethods
=
false
)
...
...
@@ -463,6 +466,20 @@ public class WebMvcAutoConfiguration {
return
localeResolver
;
}
@Override
@Bean
@ConditionalOnMissingBean
(
name
=
DispatcherServlet
.
THEME_RESOLVER_BEAN_NAME
)
public
ThemeResolver
themeResolver
()
{
return
super
.
themeResolver
();
}
@Override
@Bean
@ConditionalOnMissingBean
(
name
=
DispatcherServlet
.
FLASH_MAP_MANAGER_BEAN_NAME
)
public
FlashMapManager
flashMapManager
()
{
return
super
.
flashMapManager
();
}
private
Optional
<
Resource
>
getWelcomePage
()
{
String
[]
locations
=
getResourceLocations
(
this
.
resourceProperties
.
getStaticLocations
());
return
Arrays
.
stream
(
locations
).
map
(
this
::
getIndexHtml
).
filter
(
this
::
isReadable
).
findFirst
();
...
...
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java
View file @
bd4c6e51
/*
* Copyright 2012-202
0
the original author or authors.
* Copyright 2012-202
1
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -87,10 +87,13 @@ import org.springframework.web.filter.FormContentFilter;
import
org.springframework.web.filter.HiddenHttpMethodFilter
;
import
org.springframework.web.filter.RequestContextFilter
;
import
org.springframework.web.servlet.DispatcherServlet
;
import
org.springframework.web.servlet.FlashMap
;
import
org.springframework.web.servlet.FlashMapManager
;
import
org.springframework.web.servlet.HandlerAdapter
;
import
org.springframework.web.servlet.HandlerExceptionResolver
;
import
org.springframework.web.servlet.HandlerMapping
;
import
org.springframework.web.servlet.LocaleResolver
;
import
org.springframework.web.servlet.ThemeResolver
;
import
org.springframework.web.servlet.View
;
import
org.springframework.web.servlet.ViewResolver
;
import
org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer
;
...
...
@@ -119,6 +122,9 @@ import org.springframework.web.servlet.resource.ResourceResolver;
import
org.springframework.web.servlet.resource.ResourceTransformer
;
import
org.springframework.web.servlet.resource.VersionResourceResolver
;
import
org.springframework.web.servlet.resource.VersionStrategy
;
import
org.springframework.web.servlet.support.AbstractFlashMapManager
;
import
org.springframework.web.servlet.support.SessionFlashMapManager
;
import
org.springframework.web.servlet.theme.FixedThemeResolver
;
import
org.springframework.web.servlet.view.AbstractView
;
import
org.springframework.web.servlet.view.ContentNegotiatingViewResolver
;
import
org.springframework.web.util.UrlPathHelper
;
...
...
@@ -137,6 +143,7 @@ import static org.mockito.Mockito.mock;
* @author Eddú Meléndez
* @author Kristine Jetzke
* @author Artsiom Yudovin
* @author Scott Frederick
*/
class
WebMvcAutoConfigurationTests
{
...
...
@@ -362,6 +369,42 @@ class WebMvcAutoConfigurationTests {
});
}
@Test
void
customThemeResolverWithMatchingNameReplacesDefaultThemeResolver
()
{
this
.
contextRunner
.
withBean
(
"themeResolver"
,
CustomThemeResolver
.
class
,
CustomThemeResolver:
:
new
)
.
run
((
context
)
->
{
assertThat
(
context
).
hasSingleBean
(
ThemeResolver
.
class
);
assertThat
(
context
.
getBean
(
"themeResolver"
)).
isInstanceOf
(
CustomThemeResolver
.
class
);
});
}
@Test
void
customThemeResolverWithDifferentNameDoesNotReplaceDefaultThemeResolver
()
{
this
.
contextRunner
.
withBean
(
"customThemeResolver"
,
CustomThemeResolver
.
class
,
CustomThemeResolver:
:
new
)
.
run
((
context
)
->
{
assertThat
(
context
.
getBean
(
"customThemeResolver"
)).
isInstanceOf
(
CustomThemeResolver
.
class
);
assertThat
(
context
.
getBean
(
"themeResolver"
)).
isInstanceOf
(
FixedThemeResolver
.
class
);
});
}
@Test
void
customFlashMapManagerWithMatchingNameReplacesDefaultFlashMapManager
()
{
this
.
contextRunner
.
withBean
(
"flashMapManager"
,
CustomFlashMapManager
.
class
,
CustomFlashMapManager:
:
new
)
.
run
((
context
)
->
{
assertThat
(
context
).
hasSingleBean
(
FlashMapManager
.
class
);
assertThat
(
context
.
getBean
(
"flashMapManager"
)).
isInstanceOf
(
CustomFlashMapManager
.
class
);
});
}
@Test
void
customFlashMapManagerWithDifferentNameDoesNotReplaceDefaultFlashMapManager
()
{
this
.
contextRunner
.
withBean
(
"customFlashMapManager"
,
CustomFlashMapManager
.
class
,
CustomFlashMapManager:
:
new
)
.
run
((
context
)
->
{
assertThat
(
context
.
getBean
(
"customFlashMapManager"
)).
isInstanceOf
(
CustomFlashMapManager
.
class
);
assertThat
(
context
.
getBean
(
"flashMapManager"
)).
isInstanceOf
(
SessionFlashMapManager
.
class
);
});
}
@Test
void
defaultDateFormat
()
{
this
.
contextRunner
.
run
((
context
)
->
{
...
...
@@ -1407,4 +1450,33 @@ class WebMvcAutoConfigurationTests {
}
static
class
CustomThemeResolver
implements
ThemeResolver
{
@Override
public
String
resolveThemeName
(
HttpServletRequest
request
)
{
return
"custom"
;
}
@Override
public
void
setThemeName
(
HttpServletRequest
request
,
HttpServletResponse
response
,
String
themeName
)
{
}
}
static
class
CustomFlashMapManager
extends
AbstractFlashMapManager
{
@Override
protected
List
<
FlashMap
>
retrieveFlashMaps
(
HttpServletRequest
request
)
{
return
null
;
}
@Override
protected
void
updateFlashMaps
(
List
<
FlashMap
>
flashMaps
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
}
}
}
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