@ -16,8 +16,13 @@
@@ -16,8 +16,13 @@
package org.springframework.boot.autoconfigure.jms.activemq ;
import java.util.Collections ;
import java.util.LinkedHashMap ;
import java.util.Map ;
import org.apache.activemq.ActiveMQConnectionFactory ;
import org.springframework.util.Assert ;
import org.springframework.util.ClassUtils ;
import org.springframework.util.StringUtils ;
/ * *
@ -33,6 +38,14 @@ class ActiveMQConnectionFactoryFactory {
@@ -33,6 +38,14 @@ class ActiveMQConnectionFactoryFactory {
private static final String DEFAULT_NETWORK_BROKER_URL = "tcp://localhost:61616" ;
private static final Map < String , String > CLASS_BASED_BROKER_URLS ;
static {
Map < String , String > map = new LinkedHashMap < String , String > ( ) ;
map . put ( "org.apache.activemq.transport.mqtt.MQTTTransport" ,
"mqtt://localhost:1883" ) ;
CLASS_BASED_BROKER_URLS = Collections . unmodifiableMap ( map ) ;
}
private final ActiveMQProperties properties ;
public ActiveMQConnectionFactoryFactory ( ActiveMQProperties properties ) {
@ -67,6 +80,13 @@ class ActiveMQConnectionFactoryFactory {
@@ -67,6 +80,13 @@ class ActiveMQConnectionFactoryFactory {
if ( this . properties . getBrokerUrl ( ) ! = null ) {
return this . properties . getBrokerUrl ( ) ;
}
if ( this . properties . isAutodetectConnectionUrl ( ) ) {
for ( Map . Entry < String , String > entry : CLASS_BASED_BROKER_URLS . entrySet ( ) ) {
if ( ClassUtils . isPresent ( entry . getKey ( ) , null ) ) {
return entry . getValue ( ) ;
}
}
}
if ( this . properties . isInMemory ( ) ) {
return DEFAULT_EMBEDDED_BROKER_URL ;
}