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
abd86e50
Commit
abd86e50
authored
Mar 29, 2016
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.3.x'
parents
87b963b3
ae095b2c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
23 deletions
+57
-23
IntegrationAutoConfiguration.java
...toconfigure/integration/IntegrationAutoConfiguration.java
+3
-11
IntegrationAutoConfigurationTests.java
...figure/integration/IntegrationAutoConfigurationTests.java
+54
-12
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfiguration.java
View file @
abd86e50
/*
* Copyright 2012-201
5
the original author or authors.
* Copyright 2012-201
6
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,15 +16,12 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
integration
;
import
javax.management.MBeanServer
;
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.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.integration.config.EnableIntegration
;
import
org.springframework.integration.jmx.config.EnableIntegrationMBeanExport
;
...
...
@@ -36,19 +33,15 @@ import org.springframework.integration.monitor.IntegrationMBeanExporter;
*
* @author Artem Bilan
* @author Dave Syer
* @author Stephane Nicoll
* @since 1.1.0
*/
@Configuration
@ConditionalOnClass
(
EnableIntegration
.
class
)
@AutoConfigureAfter
(
JmxAutoConfiguration
.
class
)
@ConditionalOnProperty
(
prefix
=
"spring.jmx"
,
name
=
"enabled"
,
havingValue
=
"true"
,
matchIfMissing
=
true
)
public
class
IntegrationAutoConfiguration
{
@Bean
@ConditionalOnMissingBean
(
MBeanServer
.
class
)
public
MBeanServer
mbeanServer
()
{
return
new
JmxAutoConfiguration
().
mbeanServer
();
}
@Configuration
@EnableIntegration
protected
static
class
IntegrationConfiguration
{
...
...
@@ -57,7 +50,6 @@ public class IntegrationAutoConfiguration {
@Configuration
@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
{
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/integration/IntegrationAutoConfigurationTests.java
View file @
abd86e50
...
...
@@ -16,12 +16,19 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
integration
;
import
java.util.Arrays
;
import
java.util.List
;
import
javax.management.MBeanServer
;
import
org.junit.After
;
import
org.junit.Test
;
import
org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.integration.support.channel.HeaderChannelRegistry
;
import
org.springframework.test.context.support.TestPropertySourceUtils
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
...
...
@@ -29,40 +36,75 @@ import static org.assertj.core.api.Assertions.assertThat;
* Tests for {@link IntegrationAutoConfiguration}.
*
* @author Artem Bilan
* @author Stephane Nicoll
*/
public
class
IntegrationAutoConfigurationTests
{
private
AnnotationConfigApplicationContext
context
=
new
AnnotationConfigApplicationContext
();
private
AnnotationConfigApplicationContext
context
;
@After
public
void
close
()
{
if
(
this
.
context
!=
null
)
{
this
.
context
.
close
();
if
(
this
.
context
.
getParent
()
!=
null
)
{
((
ConfigurableApplicationContext
)
this
.
context
.
getParent
()).
close
();
}
}
}
@Test
public
void
integrationIsAvailable
()
{
this
.
context
.
register
(
IntegrationAutoConfiguration
.
class
);
this
.
context
.
refresh
();
load
();
MBeanServer
mBeanServer
=
this
.
context
.
getBean
(
MBeanServer
.
class
);
assertDomains
(
mBeanServer
,
true
,
"org.springframework.integration"
,
"org.springframework.integration.monitor"
);
assertThat
(
this
.
context
.
getBean
(
HeaderChannelRegistry
.
class
)).
isNotNull
();
this
.
context
.
close
();
}
@Test
public
void
addJmxAuto
()
{
this
.
context
.
register
(
JmxAutoConfiguration
.
class
,
IntegrationAutoConfiguration
.
class
);
this
.
context
.
refresh
();
assertThat
(
this
.
context
.
getBean
(
HeaderChannelRegistry
.
class
)).
isNotNull
();
this
.
context
.
close
();
public
void
disableIntegration
()
{
load
(
"spring.jmx.enabled=false"
);
assertThat
(
this
.
context
.
getBeansOfType
(
MBeanServer
.
class
)).
hasSize
(
0
);
}
@Test
public
void
customizeDomain
()
{
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"
,
"org.springframework.integration.monitor"
);
}
@Test
public
void
parentContext
()
{
this
.
context
.
register
(
IntegrationAutoConfiguration
.
class
);
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
register
(
JmxAutoConfiguration
.
class
,
IntegrationAutoConfiguration
.
class
);
this
.
context
.
refresh
();
AnnotationConfigApplicationContext
parent
=
this
.
context
;
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
setParent
(
parent
);
this
.
context
.
register
(
IntegrationAutoConfiguration
.
class
);
this
.
context
.
register
(
JmxAutoConfiguration
.
class
,
IntegrationAutoConfiguration
.
class
);
this
.
context
.
refresh
();
assertThat
(
this
.
context
.
getBean
(
HeaderChannelRegistry
.
class
)).
isNotNull
();
((
ConfigurableApplicationContext
)
this
.
context
.
getParent
()).
close
();
this
.
context
.
close
();
}
private
static
void
assertDomains
(
MBeanServer
mBeanServer
,
boolean
expected
,
String
...
domains
)
{
List
<
String
>
actual
=
Arrays
.
asList
(
mBeanServer
.
getDomains
());
for
(
String
domain
:
domains
)
{
assertThat
(
actual
.
contains
(
domain
)).
isEqualTo
(
expected
);
}
}
private
void
load
(
String
...
environment
)
{
AnnotationConfigApplicationContext
ctx
=
new
AnnotationConfigApplicationContext
();
TestPropertySourceUtils
.
addInlinedPropertiesToEnvironment
(
ctx
,
environment
);
ctx
.
register
(
JmxAutoConfiguration
.
class
,
IntegrationAutoConfiguration
.
class
);
ctx
.
refresh
();
this
.
context
=
ctx
;
}
}
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