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
e93aa205
Commit
e93aa205
authored
Jun 20, 2016
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6184 from artembilan:GH-6183
* pr/6184: Fix relaxed binding of SI JMX config
parents
9abca48a
3ea84f9e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
3 deletions
+58
-3
IntegrationAutoConfiguration.java
...toconfigure/integration/IntegrationAutoConfiguration.java
+57
-2
IntegrationAutoConfigurationTests.java
...figure/integration/IntegrationAutoConfigurationTests.java
+1
-1
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfiguration.java
View file @
e93aa205
...
...
@@ -16,16 +16,30 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
integration
;
import
javax.management.MBeanServer
;
import
org.springframework.beans.BeansException
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.BeanFactoryAware
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.boot.autoconfigure.AutoConfigureAfter
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.boot.autoconfigure.condition.SearchStrategy
;
import
org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration
;
import
org.springframework.boot.bind.RelaxedPropertyResolver
;
import
org.springframework.context.EnvironmentAware
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.core.env.Environment
;
import
org.springframework.integration.config.EnableIntegration
;
import
org.springframework.integration.jmx.config.EnableIntegrationMBeanExport
;
import
org.springframework.integration.monitor.IntegrationMBeanExporter
;
import
org.springframework.integration.support.management.IntegrationManagementConfigurer
;
import
org.springframework.util.StringUtils
;
/**
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
...
...
@@ -50,8 +64,49 @@ public class IntegrationAutoConfiguration {
@ConditionalOnClass
(
EnableIntegrationMBeanExport
.
class
)
@ConditionalOnMissingBean
(
value
=
IntegrationMBeanExporter
.
class
,
search
=
SearchStrategy
.
CURRENT
)
@ConditionalOnProperty
(
prefix
=
"spring.jmx"
,
name
=
"enabled"
,
havingValue
=
"true"
,
matchIfMissing
=
true
)
@EnableIntegrationMBeanExport
(
defaultDomain
=
"${spring.jmx.default-domain:}"
,
server
=
"${spring.jmx.server:mbeanServer}"
)
protected
static
class
IntegrationJmxConfiguration
{
protected
static
class
IntegrationJmxConfiguration
implements
EnvironmentAware
,
BeanFactoryAware
{
private
BeanFactory
beanFactory
;
private
RelaxedPropertyResolver
propertyResolver
;
@Autowired
(
required
=
false
)
@Qualifier
(
IntegrationManagementConfigurer
.
MANAGEMENT_CONFIGURER_NAME
)
private
IntegrationManagementConfigurer
configurer
;
@Override
public
void
setBeanFactory
(
BeanFactory
beanFactory
)
throws
BeansException
{
this
.
beanFactory
=
beanFactory
;
}
@Override
public
void
setEnvironment
(
Environment
environment
)
{
this
.
propertyResolver
=
new
RelaxedPropertyResolver
(
environment
,
"spring.jmx."
);
}
@Bean
@Primary
public
IntegrationMBeanExporter
integrationMbeanExporter
()
{
IntegrationMBeanExporter
exporter
=
new
IntegrationMBeanExporter
();
String
defaultDomain
=
this
.
propertyResolver
.
getProperty
(
"default-domain"
);
if
(
StringUtils
.
hasLength
(
defaultDomain
))
{
exporter
.
setDefaultDomain
(
defaultDomain
);
}
String
server
=
this
.
propertyResolver
.
getProperty
(
"server"
,
"mbeanServer"
);
if
(
StringUtils
.
hasLength
(
server
))
{
exporter
.
setServer
(
this
.
beanFactory
.
getBean
(
server
,
MBeanServer
.
class
));
}
if
(
this
.
configurer
!=
null
)
{
if
(
this
.
configurer
.
getDefaultCountsEnabled
()
==
null
)
{
this
.
configurer
.
setDefaultCountsEnabled
(
true
);
}
if
(
this
.
configurer
.
getDefaultStatsEnabled
()
==
null
)
{
this
.
configurer
.
setDefaultStatsEnabled
(
true
);
}
}
return
exporter
;
}
}
}
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfigurationTests.java
View file @
e93aa205
...
...
@@ -92,7 +92,7 @@ public class IntegrationAutoConfigurationTests {
@Test
public
void
customizeJmxDomain
()
{
load
(
"
spring.jmx.default-domain
=org.foo"
);
load
(
"
SPRING_JMX_DEFAULT_DOMAIN
=org.foo"
);
MBeanServer
mBeanServer
=
this
.
context
.
getBean
(
MBeanServer
.
class
);
assertDomains
(
mBeanServer
,
true
,
"org.foo"
);
assertDomains
(
mBeanServer
,
false
,
"org.springframework.integration"
,
...
...
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