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
4d2e557f
Commit
4d2e557f
authored
Sep 15, 2016
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.3.x
parents
7e263d89
b8833c40
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
131 additions
and
0 deletions
+131
-0
ServletContextApplicationListener.java
...k/boot/web/support/ServletContextApplicationListener.java
+56
-0
SpringBootServletInitializer.java
...mework/boot/web/support/SpringBootServletInitializer.java
+1
-0
ServletContextApplicationContextInitializerTests.java
...ort/ServletContextApplicationContextInitializerTests.java
+67
-0
SpringBootServletInitializerTests.java
...k/boot/web/support/SpringBootServletInitializerTests.java
+7
-0
No files found.
spring-boot/src/main/java/org/springframework/boot/web/support/ServletContextApplicationListener.java
0 → 100644
View file @
4d2e557f
/*
* Copyright 2012-2016 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
web
.
support
;
import
javax.servlet.ServletContext
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.context.config.ConfigFileApplicationListener
;
import
org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent
;
import
org.springframework.context.ApplicationListener
;
import
org.springframework.core.Ordered
;
import
org.springframework.web.context.ConfigurableWebEnvironment
;
/**
* An {@link ApplicationListener} that initializes the {@link SpringApplication} using the
* {@link ServletContext}.
*
* @author Andy Wilkinson
*/
final
class
ServletContextApplicationListener
implements
ApplicationListener
<
ApplicationEnvironmentPreparedEvent
>,
Ordered
{
private
final
ServletContext
servletContext
;
ServletContextApplicationListener
(
ServletContext
servletContext
)
{
this
.
servletContext
=
servletContext
;
}
@Override
public
int
getOrder
()
{
return
ConfigFileApplicationListener
.
DEFAULT_ORDER
-
1
;
}
@Override
public
void
onApplicationEvent
(
ApplicationEnvironmentPreparedEvent
event
)
{
if
(
event
.
getEnvironment
()
instanceof
ConfigurableWebEnvironment
)
{
((
ConfigurableWebEnvironment
)
event
.
getEnvironment
())
.
initPropertySources
(
this
.
servletContext
,
null
);
}
}
}
spring-boot/src/main/java/org/springframework/boot/web/support/SpringBootServletInitializer.java
View file @
4d2e557f
...
...
@@ -113,6 +113,7 @@ public abstract class SpringBootServletInitializer implements WebApplicationInit
}
builder
.
initializers
(
new
ServletContextApplicationContextInitializer
(
servletContext
));
builder
.
listeners
(
new
ServletContextApplicationListener
(
servletContext
));
builder
.
contextClass
(
AnnotationConfigEmbeddedWebApplicationContext
.
class
);
builder
=
configure
(
builder
);
SpringApplication
application
=
builder
.
build
();
...
...
spring-boot/src/test/java/org/springframework/boot/web/support/ServletContextApplicationContextInitializerTests.java
0 → 100644
View file @
4d2e557f
/*
* Copyright 2012-2016 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
web
.
support
;
import
javax.servlet.ServletContext
;
import
org.junit.Test
;
import
org.springframework.web.context.ConfigurableWebApplicationContext
;
import
org.springframework.web.context.WebApplicationContext
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
times
;
import
static
org
.
mockito
.
Mockito
.
verify
;
/**
* Tests for {@link ServletContextApplicationContextInitializer}.
*
* @author Andy Wilkinson
*/
public
class
ServletContextApplicationContextInitializerTests
{
private
final
ServletContext
servletContext
=
mock
(
ServletContext
.
class
);
private
final
ConfigurableWebApplicationContext
applicationContext
=
mock
(
ConfigurableWebApplicationContext
.
class
);
@Test
public
void
servletContextIsSetOnTheApplicationContext
()
{
new
ServletContextApplicationContextInitializer
(
this
.
servletContext
)
.
initialize
(
this
.
applicationContext
);
verify
(
this
.
applicationContext
).
setServletContext
(
this
.
servletContext
);
}
@Test
public
void
applicationContextIsNotStoredInServletContextByDefault
()
{
new
ServletContextApplicationContextInitializer
(
this
.
servletContext
)
.
initialize
(
this
.
applicationContext
);
verify
(
this
.
servletContext
,
times
(
0
)).
setAttribute
(
WebApplicationContext
.
ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
,
this
.
applicationContext
);
}
@Test
public
void
applicationContextCanBeStoredInServletContext
()
{
new
ServletContextApplicationContextInitializer
(
this
.
servletContext
,
true
)
.
initialize
(
this
.
applicationContext
);
verify
(
this
.
servletContext
).
setAttribute
(
WebApplicationContext
.
ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
,
this
.
applicationContext
);
}
}
spring-boot/src/test/java/org/springframework/boot/web/support/SpringBootServletInitializerTests.java
View file @
4d2e557f
...
...
@@ -94,6 +94,13 @@ public class SpringBootServletInitializerTests {
.
containsOnly
(
WithErrorPageFilterNotRegistered
.
class
);
}
@Test
public
void
servletContextApplicationListenerIsAdded
()
{
new
WithConfiguredSource
().
createRootApplicationContext
(
this
.
servletContext
);
assertThat
(
this
.
application
.
getListeners
())
.
hasAtLeastOneElementOfType
(
ServletContextApplicationListener
.
class
);
}
private
class
MockSpringBootServletInitializer
extends
SpringBootServletInitializer
{
@Override
...
...
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