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
133284c1
Commit
133284c1
authored
Dec 13, 2016
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.5.x'
parents
78b29313
391a760c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
141 additions
and
78 deletions
+141
-78
JolokiaMvcEndpoint.java
...amework/boot/actuate/endpoint/mvc/JolokiaMvcEndpoint.java
+8
-1
JolokiaMvcEndpointIntegrationTests.java
...uate/endpoint/mvc/JolokiaMvcEndpointIntegrationTests.java
+111
-0
JolokiaMvcEndpointTests.java
...rk/boot/actuate/endpoint/mvc/JolokiaMvcEndpointTests.java
+22
-77
No files found.
spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/JolokiaMvcEndpoint.java
View file @
133284c1
...
...
@@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletResponse;
import
org.jolokia.http.AgentServlet
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.DisposableBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.context.ApplicationContext
;
...
...
@@ -45,7 +46,8 @@ import org.springframework.web.util.UrlPathHelper;
@ConfigurationProperties
(
prefix
=
"endpoints.jolokia"
,
ignoreUnknownFields
=
false
)
@HypermediaDisabled
public
class
JolokiaMvcEndpoint
extends
AbstractNamedMvcEndpoint
implements
InitializingBean
,
ApplicationContextAware
,
ServletContextAware
{
implements
InitializingBean
,
ApplicationContextAware
,
ServletContextAware
,
DisposableBean
{
private
final
ServletWrappingController
controller
=
new
ServletWrappingController
();
public
JolokiaMvcEndpoint
()
{
...
...
@@ -74,6 +76,11 @@ public class JolokiaMvcEndpoint extends AbstractNamedMvcEndpoint
this
.
controller
.
setApplicationContext
(
context
);
}
@Override
public
void
destroy
()
{
this
.
controller
.
destroy
();
}
@RequestMapping
(
"/**"
)
public
ModelAndView
handle
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/JolokiaMvcEndpointIntegrationTests.java
0 → 100644
View file @
133284c1
/*
* Copyright 2013-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
.
actuate
.
endpoint
.
mvc
;
import
java.util.Set
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration
;
import
org.springframework.boot.actuate.autoconfigure.JolokiaAutoConfiguration
;
import
org.springframework.boot.actuate.autoconfigure.ManagementServerPropertiesAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration
;
import
org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.util.EnvironmentTestUtils
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.web.servlet.MockMvc
;
import
org.springframework.test.web.servlet.setup.MockMvcBuilders
;
import
org.springframework.web.context.WebApplicationContext
;
import
org.springframework.web.servlet.config.annotation.EnableWebMvc
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
hamcrest
.
Matchers
.
containsString
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
get
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
content
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
/**
* Integration tests for {@link JolokiaMvcEndpoint}
*
* @author Christian Dupuis
* @author Dave Syer
*/
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
JolokiaMvcEndpointIntegrationTests
{
@Autowired
private
MvcEndpoints
endpoints
;
@Autowired
private
WebApplicationContext
context
;
private
MockMvc
mvc
;
@Before
public
void
setUp
()
{
this
.
mvc
=
MockMvcBuilders
.
webAppContextSetup
(
this
.
context
).
build
();
EnvironmentTestUtils
.
addEnvironment
((
ConfigurableApplicationContext
)
this
.
context
,
"foo:bar"
);
}
@Test
public
void
endpointRegistered
()
throws
Exception
{
Set
<?
extends
MvcEndpoint
>
values
=
this
.
endpoints
.
getEndpoints
();
assertThat
(
values
).
hasAtLeastOneElementOfType
(
JolokiaMvcEndpoint
.
class
);
}
@Test
public
void
search
()
throws
Exception
{
this
.
mvc
.
perform
(
get
(
"/jolokia/search/java.lang:*"
)).
andExpect
(
status
().
isOk
())
.
andExpect
(
content
().
string
(
containsString
(
"GarbageCollector"
)));
}
@Test
public
void
read
()
throws
Exception
{
this
.
mvc
.
perform
(
get
(
"/jolokia/read/java.lang:type=Memory"
))
.
andExpect
(
status
().
isOk
())
.
andExpect
(
content
().
string
(
containsString
(
"NonHeapMemoryUsage"
)));
}
@Test
public
void
list
()
throws
Exception
{
this
.
mvc
.
perform
(
get
(
"/jolokia/list/java.lang/type=Memory/attr"
))
.
andExpect
(
status
().
isOk
())
.
andExpect
(
content
().
string
(
containsString
(
"NonHeapMemoryUsage"
)));
}
@Configuration
@EnableConfigurationProperties
@EnableWebMvc
@Import
({
JacksonAutoConfiguration
.
class
,
HttpMessageConvertersAutoConfiguration
.
class
,
EndpointWebMvcAutoConfiguration
.
class
,
JolokiaAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
})
public
static
class
Config
{
}
}
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/mvc/JolokiaMvcEndpointTests.java
View file @
133284c1
/*
* Copyright 201
3
-2016 the original author or authors.
* Copyright 201
2
-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.
...
...
@@ -16,100 +16,45 @@
package
org
.
springframework
.
boot
.
actuate
.
endpoint
.
mvc
;
import
java.util.Set
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration
;
import
org.springframework.boot.actuate.autoconfigure.JolokiaAutoConfiguration
;
import
org.springframework.boot.actuate.autoconfigure.ManagementServerPropertiesAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration
;
import
org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.util.EnvironmentTestUtils
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.context.TestPropertySource
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.web.servlet.MockMvc
;
import
org.springframework.test.web.servlet.setup.MockMvcBuilders
;
import
org.springframework.beans.factory.DisposableBean
;
import
org.springframework.mock.web.MockServletContext
;
import
org.springframework.test.util.ReflectionTestUtils
;
import
org.springframework.web.context.WebApplicationContext
;
import
org.springframework.web.servlet.
config.annotation.EnableWebMvc
;
import
org.springframework.web.servlet.
mvc.ServletWrappingController
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
hamcrest
.
Matchers
.
containsString
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
get
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
content
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
spy
;
import
static
org
.
mockito
.
Mockito
.
verify
;
/**
* Tests for {@link JolokiaMvcEndpoint}
* Tests for {@link JolokiaMvcEndpoint}
.
*
* @author Christian Dupuis
* @author Dave Syer
* @author Andy Wilkinson
*/
@RunWith
(
SpringRunner
.
class
)
@DirtiesContext
@SpringBootTest
@TestPropertySource
(
properties
=
"management.security.enabled=false"
)
public
class
JolokiaMvcEndpointTests
{
@Autowired
private
MvcEndpoints
endpoints
;
@Autowired
private
WebApplicationContext
context
;
private
final
JolokiaMvcEndpoint
endpoint
=
new
JolokiaMvcEndpoint
();
private
MockMvc
mvc
;
private
final
ServletWrappingController
controller
=
(
ServletWrappingController
)
spy
(
ReflectionTestUtils
.
getField
(
this
.
endpoint
,
"controller"
));
@Before
public
void
setUp
()
{
this
.
mvc
=
MockMvcBuilders
.
webAppContextSetup
(
this
.
context
).
build
();
EnvironmentTestUtils
.
addEnvironment
((
ConfigurableApplicationContext
)
this
.
context
,
"foo:bar"
);
}
@Test
public
void
endpointRegistered
()
throws
Exception
{
Set
<?
extends
MvcEndpoint
>
values
=
this
.
endpoints
.
getEndpoints
();
assertThat
(
values
).
hasAtLeastOneElementOfType
(
JolokiaMvcEndpoint
.
class
);
}
@Test
public
void
search
()
throws
Exception
{
this
.
mvc
.
perform
(
get
(
"/jolokia/search/java.lang:*"
)).
andExpect
(
status
().
isOk
())
.
andExpect
(
content
().
string
(
containsString
(
"GarbageCollector"
)));
}
@Test
public
void
read
()
throws
Exception
{
this
.
mvc
.
perform
(
get
(
"/jolokia/read/java.lang:type=Memory"
))
.
andExpect
(
status
().
isOk
())
.
andExpect
(
content
().
string
(
containsString
(
"NonHeapMemoryUsage"
)));
public
void
before
()
{
ReflectionTestUtils
.
setField
(
this
.
endpoint
,
"controller"
,
this
.
controller
);
}
@Test
public
void
list
()
throws
Exception
{
this
.
mvc
.
perform
(
get
(
"/jolokia/list/java.lang/type=Memory/attr"
))
.
andExpect
(
status
().
isOk
())
.
andExpect
(
content
().
string
(
containsString
(
"NonHeapMemoryUsage"
)));
}
@Configuration
@EnableConfigurationProperties
@EnableWebMvc
@Import
({
JacksonAutoConfiguration
.
class
,
HttpMessageConvertersAutoConfiguration
.
class
,
EndpointWebMvcAutoConfiguration
.
class
,
JolokiaAutoConfiguration
.
class
,
ManagementServerPropertiesAutoConfiguration
.
class
})
public
static
class
Config
{
public
void
controllerIsDestroyed
()
throws
Exception
{
this
.
endpoint
.
setApplicationContext
(
mock
(
WebApplicationContext
.
class
));
this
.
endpoint
.
setServletContext
(
new
MockServletContext
());
this
.
endpoint
.
afterPropertiesSet
();
this
.
endpoint
.
destroy
();
assertThat
(
this
.
endpoint
).
isInstanceOf
(
DisposableBean
.
class
);
verify
(
this
.
controller
).
destroy
();
}
}
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