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
6c1915e8
Commit
6c1915e8
authored
Sep 12, 2018
by
Madhura Bhave
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.0.x'
parents
8ed516e9
7af6665a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
100 additions
and
10 deletions
+100
-10
ManagementContextAutoConfiguration.java
...figure/web/server/ManagementContextAutoConfiguration.java
+26
-10
ManagementContextAutoConfigurationTests.java
...e/web/server/ManagementContextAutoConfigurationTests.java
+74
-0
No files found.
spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/ManagementContextAutoConfiguration.java
View file @
6c1915e8
...
...
@@ -16,6 +16,9 @@
package
org
.
springframework
.
boot
.
actuate
.
autoconfigure
.
web
.
server
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.beans.factory.SmartInitializingSingleton
;
import
org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties
;
import
org.springframework.boot.actuate.autoconfigure.web.ManagementContextFactory
;
...
...
@@ -26,6 +29,7 @@ import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoCon
import
org.springframework.boot.context.event.ApplicationFailedEvent
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.web.context.ConfigurableWebServerApplicationContext
;
import
org.springframework.boot.web.context.WebServerApplicationContext
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationEvent
;
import
org.springframework.context.ApplicationListener
;
...
...
@@ -55,6 +59,9 @@ import org.springframework.util.Assert;
ManagementServerProperties
.
class
})
public
class
ManagementContextAutoConfiguration
{
private
static
final
Log
logger
=
LogFactory
.
getLog
(
ManagementContextAutoConfiguration
.
class
);
@Configuration
@ConditionalOnManagementPort
(
ManagementPortType
.
SAME
)
static
class
SameManagementContextConfiguration
...
...
@@ -129,16 +136,25 @@ public class ManagementContextAutoConfiguration {
@Override
public
void
afterSingletonsInstantiated
()
{
ConfigurableWebServerApplicationContext
managementContext
=
this
.
managementContextFactory
.
createManagementContext
(
this
.
applicationContext
,
EnableChildManagementContextConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
managementContext
.
setServerNamespace
(
"management"
);
managementContext
.
setId
(
this
.
applicationContext
.
getId
()
+
":management"
);
setClassLoaderIfPossible
(
managementContext
);
CloseManagementContextListener
.
addIfPossible
(
this
.
applicationContext
,
managementContext
);
managementContext
.
refresh
();
if
(
this
.
applicationContext
instanceof
WebServerApplicationContext
&&
((
WebServerApplicationContext
)
this
.
applicationContext
)
.
getWebServer
()
!=
null
)
{
ConfigurableWebServerApplicationContext
managementContext
=
this
.
managementContextFactory
.
createManagementContext
(
this
.
applicationContext
,
EnableChildManagementContextConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
managementContext
.
setServerNamespace
(
"management"
);
managementContext
.
setId
(
this
.
applicationContext
.
getId
()
+
":management"
);
setClassLoaderIfPossible
(
managementContext
);
CloseManagementContextListener
.
addIfPossible
(
this
.
applicationContext
,
managementContext
);
managementContext
.
refresh
();
}
else
{
logger
.
warn
(
"Could not start embedded management container on "
+
"different port (management endpoints are still available "
+
"through JMX)"
);
}
}
private
void
setClassLoaderIfPossible
(
ConfigurableApplicationContext
child
)
{
...
...
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/server/ManagementContextAutoConfigurationTests.java
0 → 100644
View file @
6c1915e8
/*
* Copyright 2012-2018 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
.
actuate
.
autoconfigure
.
web
.
server
;
import
org.junit.Rule
;
import
org.junit.Test
;
import
org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration
;
import
org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration
;
import
org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration
;
import
org.springframework.boot.autoconfigure.AutoConfigurations
;
import
org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration
;
import
org.springframework.boot.test.context.runner.WebApplicationContextRunner
;
import
org.springframework.boot.test.rule.OutputCapture
;
import
org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Tests for {@link ManagementContextAutoConfiguration}.
*
* @author Madhura Bhave
*/
public
class
ManagementContextAutoConfigurationTests
{
private
WebApplicationContextRunner
contextRunner
=
new
WebApplicationContextRunner
()
.
withConfiguration
(
AutoConfigurations
.
of
(
ManagementContextAutoConfiguration
.
class
,
ServletManagementContextAutoConfiguration
.
class
));
@Rule
public
OutputCapture
output
=
new
OutputCapture
();
@Test
public
void
managementServerPortShouldBeIgnoredForNonEmbeddedServer
()
{
this
.
contextRunner
.
withPropertyValues
(
"management.server.port=8081"
)
.
run
((
context
)
->
{
assertThat
(
context
.
getStartupFailure
()).
isNull
();
assertThat
(
this
.
output
.
toString
())
.
contains
(
"Could not start embedded management container on "
+
"different port (management endpoints are still available through JMX)"
);
});
}
@Test
public
void
childManagementContextShouldStartForEmbeddedServer
()
{
WebApplicationContextRunner
contextRunner
=
new
WebApplicationContextRunner
(
AnnotationConfigServletWebServerApplicationContext:
:
new
)
.
withConfiguration
(
AutoConfigurations
.
of
(
ManagementContextAutoConfiguration
.
class
,
ServletWebServerFactoryAutoConfiguration
.
class
,
ServletManagementContextAutoConfiguration
.
class
,
WebEndpointAutoConfiguration
.
class
,
EndpointAutoConfiguration
.
class
));
contextRunner
.
withPropertyValues
(
"management.server.port=8081"
)
.
run
((
context
)
->
assertThat
(
this
.
output
.
toString
()).
doesNotContain
(
"Could not start embedded management container on "
+
"different port (management endpoints are still available through JMX)"
));
}
}
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