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
55079c3a
Commit
55079c3a
authored
Jul 22, 2019
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.1.x'
Closes gh-17602
parents
0ff44845
657411d8
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
43 additions
and
31 deletions
+43
-31
ActiveMQConnectionFactoryConfiguration.java
.../jms/activemq/ActiveMQConnectionFactoryConfiguration.java
+28
-31
ActiveMQAutoConfigurationTests.java
...onfigure/jms/activemq/ActiveMQAutoConfigurationTests.java
+15
-0
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQConnectionFactoryConfiguration.java
View file @
55079c3a
...
@@ -16,7 +16,6 @@
...
@@ -16,7 +16,6 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
jms
.
activemq
;
package
org
.
springframework
.
boot
.
autoconfigure
.
jms
.
activemq
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
javax.jms.ConnectionFactory
;
import
javax.jms.ConnectionFactory
;
...
@@ -49,43 +48,42 @@ import org.springframework.jms.connection.CachingConnectionFactory;
...
@@ -49,43 +48,42 @@ import org.springframework.jms.connection.CachingConnectionFactory;
class
ActiveMQConnectionFactoryConfiguration
{
class
ActiveMQConnectionFactoryConfiguration
{
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
@ConditionalOnClass
(
CachingConnectionFactory
.
class
)
@ConditionalOnProperty
(
prefix
=
"spring.activemq.pool"
,
name
=
"enabled"
,
havingValue
=
"false"
,
@ConditionalOnProperty
(
prefix
=
"spring.activemq.pool"
,
name
=
"enabled"
,
havingValue
=
"false"
,
matchIfMissing
=
true
)
matchIfMissing
=
true
)
static
class
SimpleConnectionFactoryConfiguration
{
static
class
SimpleConnectionFactoryConfiguration
{
private
final
ActiveMQProperties
properties
;
@Bean
@ConditionalOnProperty
(
prefix
=
"spring.jms.cache"
,
name
=
"enabled"
,
havingValue
=
"false"
)
private
final
List
<
ActiveMQConnectionFactoryCustomizer
>
connectionFactoryCustomizers
;
ActiveMQConnectionFactory
jmsConnectionFactory
(
ActiveMQProperties
properties
,
ObjectProvider
<
ActiveMQConnectionFactoryCustomizer
>
factoryCustomizers
)
{
SimpleConnectionFactoryConfiguration
(
ActiveMQProperties
properties
,
return
new
ActiveMQConnectionFactoryFactory
(
properties
,
ObjectProvider
<
ActiveMQConnectionFactoryCustomizer
>
connectionFactoryCustomizers
)
{
factoryCustomizers
.
orderedStream
().
collect
(
Collectors
.
toList
()))
this
.
properties
=
properties
;
.
createConnectionFactory
(
ActiveMQConnectionFactory
.
class
);
this
.
connectionFactoryCustomizers
=
connectionFactoryCustomizers
.
orderedStream
()
.
collect
(
Collectors
.
toList
());
}
}
@Configuration
(
proxyBeanMethods
=
false
)
@ConditionalOnClass
(
CachingConnectionFactory
.
class
)
@ConditionalOnProperty
(
prefix
=
"spring.jms.cache"
,
name
=
"enabled"
,
havingValue
=
"true"
,
matchIfMissing
=
true
)
static
class
CachingConnectionFactoryConfiguration
{
@Bean
@Bean
@ConditionalOnProperty
(
prefix
=
"spring.jms.cache"
,
name
=
"enabled"
,
havingValue
=
"true"
,
@ConditionalOnProperty
(
prefix
=
"spring.jms.cache"
,
name
=
"enabled"
,
havingValue
=
"true"
,
matchIfMissing
=
true
)
matchIfMissing
=
true
)
CachingConnectionFactory
cachingJmsConnectionFactory
(
JmsProperties
jmsProperties
)
{
CachingConnectionFactory
cachingJmsConnectionFactory
(
JmsProperties
jmsProperties
,
ActiveMQProperties
properties
,
ObjectProvider
<
ActiveMQConnectionFactoryCustomizer
>
factoryCustomizers
)
{
JmsProperties
.
Cache
cacheProperties
=
jmsProperties
.
getCache
();
JmsProperties
.
Cache
cacheProperties
=
jmsProperties
.
getCache
();
CachingConnectionFactory
connectionFactory
=
new
CachingConnectionFactory
(
createConnectionFactory
());
CachingConnectionFactory
connectionFactory
=
new
CachingConnectionFactory
(
new
ActiveMQConnectionFactoryFactory
(
properties
,
factoryCustomizers
.
orderedStream
().
collect
(
Collectors
.
toList
()))
.
createConnectionFactory
(
ActiveMQConnectionFactory
.
class
));
connectionFactory
.
setCacheConsumers
(
cacheProperties
.
isConsumers
());
connectionFactory
.
setCacheConsumers
(
cacheProperties
.
isConsumers
());
connectionFactory
.
setCacheProducers
(
cacheProperties
.
isProducers
());
connectionFactory
.
setCacheProducers
(
cacheProperties
.
isProducers
());
connectionFactory
.
setSessionCacheSize
(
cacheProperties
.
getSessionCacheSize
());
connectionFactory
.
setSessionCacheSize
(
cacheProperties
.
getSessionCacheSize
());
return
connectionFactory
;
return
connectionFactory
;
}
}
@Bean
@ConditionalOnProperty
(
prefix
=
"spring.jms.cache"
,
name
=
"enabled"
,
havingValue
=
"false"
)
ActiveMQConnectionFactory
jmsConnectionFactory
()
{
return
createConnectionFactory
();
}
private
ActiveMQConnectionFactory
createConnectionFactory
()
{
return
new
ActiveMQConnectionFactoryFactory
(
this
.
properties
,
this
.
connectionFactoryCustomizers
)
.
createConnectionFactory
(
ActiveMQConnectionFactory
.
class
);
}
}
}
}
...
@@ -95,8 +93,7 @@ class ActiveMQConnectionFactoryConfiguration {
...
@@ -95,8 +93,7 @@ class ActiveMQConnectionFactoryConfiguration {
static
class
PooledConnectionFactoryConfiguration
{
static
class
PooledConnectionFactoryConfiguration
{
@Bean
(
destroyMethod
=
"stop"
)
@Bean
(
destroyMethod
=
"stop"
)
@ConditionalOnProperty
(
prefix
=
"spring.activemq.pool"
,
name
=
"enabled"
,
havingValue
=
"true"
,
@ConditionalOnProperty
(
prefix
=
"spring.activemq.pool"
,
name
=
"enabled"
,
havingValue
=
"true"
)
matchIfMissing
=
false
)
JmsPoolConnectionFactory
pooledJmsConnectionFactory
(
ActiveMQProperties
properties
,
JmsPoolConnectionFactory
pooledJmsConnectionFactory
(
ActiveMQProperties
properties
,
ObjectProvider
<
ActiveMQConnectionFactoryCustomizer
>
factoryCustomizers
)
{
ObjectProvider
<
ActiveMQConnectionFactoryCustomizer
>
factoryCustomizers
)
{
ActiveMQConnectionFactory
connectionFactory
=
new
ActiveMQConnectionFactoryFactory
(
properties
,
ActiveMQConnectionFactory
connectionFactory
=
new
ActiveMQConnectionFactoryFactory
(
properties
,
...
...
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQAutoConfigurationTests.java
View file @
55079c3a
...
@@ -24,6 +24,7 @@ import org.messaginghub.pooled.jms.JmsPoolConnectionFactory;
...
@@ -24,6 +24,7 @@ import org.messaginghub.pooled.jms.JmsPoolConnectionFactory;
import
org.springframework.boot.autoconfigure.AutoConfigurations
;
import
org.springframework.boot.autoconfigure.AutoConfigurations
;
import
org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration
;
import
org.springframework.boot.test.context.FilteredClassLoader
;
import
org.springframework.boot.test.context.runner.ApplicationContextRunner
;
import
org.springframework.boot.test.context.runner.ApplicationContextRunner
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
@@ -189,6 +190,20 @@ class ActiveMQAutoConfigurationTests {
...
@@ -189,6 +190,20 @@ class ActiveMQAutoConfigurationTests {
});
});
}
}
@Test
void
cachingConnectionFactoryNotOnTheClasspathThenSimpleConnectionFactoryAutoConfigured
()
{
this
.
contextRunner
.
withClassLoader
(
new
FilteredClassLoader
(
CachingConnectionFactory
.
class
))
.
withPropertyValues
(
"spring.activemq.pool.enabled=false"
,
"spring.jms.cache.enabled=false"
)
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
ActiveMQConnectionFactory
.
class
));
}
@Test
void
cachingConnectionFactoryNotOnTheClasspathAndCacheEnabledThenSimpleConnectionFactoryNotConfigured
()
{
this
.
contextRunner
.
withClassLoader
(
new
FilteredClassLoader
(
CachingConnectionFactory
.
class
))
.
withPropertyValues
(
"spring.activemq.pool.enabled=false"
,
"spring.jms.cache.enabled=true"
)
.
run
((
context
)
->
assertThat
(
context
).
doesNotHaveBean
(
ActiveMQConnectionFactory
.
class
));
}
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
static
class
EmptyConfiguration
{
static
class
EmptyConfiguration
{
...
...
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