Create spring-boot-activemq module

See gh-46082
This commit is contained in:
Stéphane Nicoll
2025-03-18 14:28:53 +01:00
committed by Andy Wilkinson
parent 11d1825154
commit fd13ac80e8
34 changed files with 174 additions and 124 deletions
+1
View File
@@ -54,6 +54,7 @@ settings.gradle.projectsLoaded {
}
include "spring-boot-project:spring-boot"
include "spring-boot-project:spring-boot-activemq"
include "spring-boot-project:spring-boot-actuator"
include "spring-boot-project:spring-boot-actuator-autoconfigure"
include "spring-boot-project:spring-boot-all"
@@ -0,0 +1,43 @@
/*
* Copyright 2012-present 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
*
* https://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.
*/
plugins {
id "java-library"
id "org.springframework.boot.auto-configuration"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
id "org.springframework.boot.optional-dependencies"
}
description = "Spring Boot ActiveMQ"
dependencies {
api(project(":spring-boot-project:spring-boot-jms"))
api("org.apache.activemq:activemq-client")
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
optional("jakarta.transaction:jakarta.transaction-api")
optional("org.apache.activemq:activemq-broker")
optional("org.messaginghub:pooled-jms") {
exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_2.0_spec"
}
testImplementation(project(":spring-boot-project:spring-boot-test"))
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testRuntimeOnly("ch.qos.logback:logback-classic")
}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import jakarta.jms.ConnectionFactory;
import org.apache.activemq.ActiveMQConnectionFactory;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import jakarta.jms.ConnectionFactory;
import org.apache.activemq.ActiveMQConnectionFactory;
@@ -14,14 +14,14 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import java.util.Collections;
import java.util.List;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQProperties.Packages;
import org.springframework.boot.activemq.autoconfigure.ActiveMQProperties.Packages;
import org.springframework.util.Assert;
/**
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import org.apache.activemq.ActiveMQConnectionFactory;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import java.time.Duration;
import java.util.ArrayList;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import jakarta.jms.ConnectionFactory;
import jakarta.transaction.TransactionManager;
@@ -17,4 +17,4 @@
/**
* Auto-configuration for ActiveMQ.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
@@ -0,0 +1,94 @@
{
"groups": [],
"properties": [
{
"name": "spring.activemq.pool.block-if-full",
"type": "java.lang.Boolean",
"description": "Whether to block when a connection is requested and the pool is full. Set it to false to throw a \"JMSException\" instead.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": true
},
{
"name": "spring.activemq.pool.block-if-full-timeout",
"type": "java.time.Duration",
"description": "Blocking period before throwing an exception if the pool is still full.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": "-1ms"
},
{
"name": "spring.activemq.pool.create-connection-on-startup",
"type": "java.lang.Boolean",
"description": "Whether to create a connection on startup. Can be used to warm up the pool on startup.",
"defaultValue": true,
"deprecation": {
"level": "error"
}
},
{
"name": "spring.activemq.pool.enabled",
"type": "java.lang.Boolean",
"description": "Whether a JmsPoolConnectionFactory should be created, instead of a regular ConnectionFactory.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": false
},
{
"name": "spring.activemq.pool.expiry-timeout",
"type": "java.time.Duration",
"description": "Connection expiration timeout.",
"defaultValue": "0ms",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.activemq.pool.idle-timeout",
"type": "java.time.Duration",
"description": "Connection idle timeout.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": "30s"
},
{
"name": "spring.activemq.pool.max-connections",
"type": "java.lang.Integer",
"description": "Maximum number of pooled connections.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": 1
},
{
"name": "spring.activemq.pool.max-sessions-per-connection",
"type": "java.lang.Integer",
"description": "Maximum number of pooled sessions per connection in the pool.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": 500
},
{
"name": "spring.activemq.pool.maximum-active-session-per-connection",
"deprecation": {
"replacement": "spring.activemq.pool.max-sessions-per-connection"
}
},
{
"name": "spring.activemq.pool.reconnect-on-exception",
"type": "java.lang.Boolean",
"description": "Reset the connection when a \"JMSException\" occurs.",
"defaultValue": true,
"deprecation": {
"level": "error"
}
},
{
"name": "spring.activemq.pool.time-between-expiration-check",
"type": "java.time.Duration",
"description": "Time to sleep between runs of the idle connection eviction thread. When negative, no idle connection eviction thread runs.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": "-1ms"
},
{
"name": "spring.activemq.pool.use-anonymous-producers",
"type": "java.lang.Boolean",
"description": "Whether to use only one anonymous \"MessageProducer\" instance. Set it to false to create one \"MessageProducer\" every time one is required.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": true
}
]
}
@@ -0,0 +1 @@
org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import jakarta.jms.ConnectionFactory;
import org.apache.activemq.ActiveMQConnectionFactory;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.jms.activemq;
package org.springframework.boot.activemq.autoconfigure;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.jupiter.api.Test;
@@ -33,10 +33,10 @@ dependencies {
implementation("com.fasterxml.jackson.core:jackson-databind")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
optional(project(":spring-boot-project:spring-boot-activemq"))
optional(project(":spring-boot-project:spring-boot-amqp"))
optional(project(":spring-boot-project:spring-boot-jackson"))
optional(project(":spring-boot-project:spring-boot-jetty"))
optional(project(":spring-boot-project:spring-boot-jms"))
optional(project(":spring-boot-project:spring-boot-jsonb"))
optional(project(":spring-boot-project:spring-boot-mail"))
optional(project(":spring-boot-project:spring-boot-reactor-netty"))
@@ -28,7 +28,6 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
import org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration;
import org.springframework.context.annotation.Bean;
@@ -38,7 +37,8 @@ import org.springframework.context.annotation.Bean;
* @author Stephane Nicoll
* @since 2.0.0
*/
@AutoConfiguration(after = { ActiveMQAutoConfiguration.class, ArtemisAutoConfiguration.class })
@AutoConfiguration(after = ArtemisAutoConfiguration.class,
afterName = "org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration")
@ConditionalOnClass(ConnectionFactory.class)
@ConditionalOnBean(ConnectionFactory.class)
@ConditionalOnEnabledHealthIndicator("jms")
@@ -39,8 +39,8 @@ dependencies {
dockerTestImplementation("org.testcontainers:neo4j")
dockerTestImplementation("org.testcontainers:testcontainers")
optional(project(":spring-boot-project:spring-boot-activemq"))
optional(project(":spring-boot-project:spring-boot-jetty"))
optional(project(":spring-boot-project:spring-boot-jms"))
optional(project(":spring-boot-project:spring-boot-jsonb"))
optional(project(":spring-boot-project:spring-boot-reactor-netty"))
optional(project(":spring-boot-project:spring-boot-tomcat"))
@@ -59,9 +59,9 @@ dependencies {
dockerTestImplementation("org.testcontainers:pulsar")
dockerTestImplementation("org.testcontainers:testcontainers")
optional(project(":spring-boot-project:spring-boot-activemq"))
optional(project(":spring-boot-project:spring-boot-jackson"))
optional(project(":spring-boot-project:spring-boot-jsonb"))
optional(project(":spring-boot-project:spring-boot-jms"))
optional(project(":spring-boot-project:spring-boot-reactor-netty"))
optional(project(":spring-boot-project:spring-boot-tomcat"))
optional("co.elastic.clients:elasticsearch-java")
@@ -99,8 +99,6 @@ dependencies {
optional("jakarta.ws.rs:jakarta.ws.rs-api")
optional("javax.cache:cache-api")
optional("javax.money:money-api")
optional("org.apache.activemq:activemq-broker")
optional("org.apache.activemq:activemq-client")
optional("org.apache.activemq:artemis-jakarta-client")
optional("org.apache.activemq:artemis-jakarta-server")
optional("org.apache.commons:commons-dbcp2")
@@ -21,7 +21,6 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
import org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
@@ -36,9 +35,11 @@ import org.springframework.context.annotation.Import;
* @author Nishant Raut
* @since 1.2.0
*/
@AutoConfiguration(before = { XADataSourceAutoConfiguration.class, ActiveMQAutoConfiguration.class,
ArtemisAutoConfiguration.class, HibernateJpaAutoConfiguration.class, TransactionAutoConfiguration.class,
TransactionManagerCustomizationAutoConfiguration.class })
@AutoConfiguration(
before = { XADataSourceAutoConfiguration.class, ArtemisAutoConfiguration.class,
HibernateJpaAutoConfiguration.class, TransactionAutoConfiguration.class,
TransactionManagerCustomizationAutoConfiguration.class },
beforeName = "org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration")
@ConditionalOnClass(jakarta.transaction.Transaction.class)
@ConditionalOnBooleanProperty(name = "spring.jta.enabled", matchIfMissing = true)
@Import(JndiJtaConfiguration.class)
@@ -1,95 +1,6 @@
{
"groups": [],
"properties": [
{
"name": "spring.activemq.pool.block-if-full",
"type": "java.lang.Boolean",
"description": "Whether to block when a connection is requested and the pool is full. Set it to false to throw a \"JMSException\" instead.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": true
},
{
"name": "spring.activemq.pool.block-if-full-timeout",
"type": "java.time.Duration",
"description": "Blocking period before throwing an exception if the pool is still full.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": "-1ms"
},
{
"name": "spring.activemq.pool.create-connection-on-startup",
"type": "java.lang.Boolean",
"description": "Whether to create a connection on startup. Can be used to warm up the pool on startup.",
"defaultValue": true,
"deprecation": {
"level": "error"
}
},
{
"name": "spring.activemq.pool.enabled",
"type": "java.lang.Boolean",
"description": "Whether a JmsPoolConnectionFactory should be created, instead of a regular ConnectionFactory.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": false
},
{
"name": "spring.activemq.pool.expiry-timeout",
"type": "java.time.Duration",
"description": "Connection expiration timeout.",
"defaultValue": "0ms",
"deprecation": {
"level": "error"
}
},
{
"name": "spring.activemq.pool.idle-timeout",
"type": "java.time.Duration",
"description": "Connection idle timeout.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": "30s"
},
{
"name": "spring.activemq.pool.max-connections",
"type": "java.lang.Integer",
"description": "Maximum number of pooled connections.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": 1
},
{
"name": "spring.activemq.pool.max-sessions-per-connection",
"type": "java.lang.Integer",
"description": "Maximum number of pooled sessions per connection in the pool.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": 500
},
{
"name": "spring.activemq.pool.maximum-active-session-per-connection",
"deprecation": {
"replacement": "spring.activemq.pool.max-sessions-per-connection"
}
},
{
"name": "spring.activemq.pool.reconnect-on-exception",
"type": "java.lang.Boolean",
"description": "Reset the connection when a \"JMSException\" occurs.",
"defaultValue": true,
"deprecation": {
"level": "error"
}
},
{
"name": "spring.activemq.pool.time-between-expiration-check",
"type": "java.time.Duration",
"description": "Time to sleep between runs of the idle connection eviction thread. When negative, no idle connection eviction thread runs.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": "-1ms"
},
{
"name": "spring.activemq.pool.use-anonymous-producers",
"type": "java.lang.Boolean",
"description": "Whether to use only one anonymous \"MessageProducer\" instance. Set it to false to create one \"MessageProducer\" every time one is required.",
"sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties",
"defaultValue": true
},
{
"name": "spring.aop.auto",
"type": "java.lang.Boolean",
@@ -70,7 +70,6 @@ org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration
org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration
org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration
org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration
org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
@@ -1983,6 +1983,7 @@ bom {
group("org.springframework.boot") {
modules = [
"spring-boot",
"spring-boot-activemq",
"spring-boot-actuator",
"spring-boot-actuator-autoconfigure",
"spring-boot-amqp",
@@ -46,6 +46,7 @@ dependencies {
implementation("com.fasterxml.jackson.core:jackson-databind")
implementation("com.fasterxml.jackson.module:jackson-module-parameter-names")
optional(project(":spring-boot-project:spring-boot-activemq"))
optional(project(":spring-boot-project:spring-boot-amqp"))
optional(project(":spring-boot-project:spring-boot-autoconfigure-all"))
optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure"))
@@ -16,7 +16,7 @@
package org.springframework.boot.docker.compose.service.connection.activemq;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQConnectionDetails;
import org.springframework.boot.activemq.autoconfigure.ActiveMQConnectionDetails;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.testsupport.container.TestImage;
@@ -16,7 +16,7 @@
package org.springframework.boot.docker.compose.service.connection.activemq;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQConnectionDetails;
import org.springframework.boot.activemq.autoconfigure.ActiveMQConnectionDetails;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.testsupport.container.TestImage;
@@ -16,7 +16,7 @@
package org.springframework.boot.docker.compose.service.connection.activemq;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQConnectionDetails;
import org.springframework.boot.activemq.autoconfigure.ActiveMQConnectionDetails;
import org.springframework.boot.docker.compose.core.RunningService;
import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory;
import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource;
@@ -16,7 +16,7 @@
package org.springframework.boot.docker.compose.service.connection.activemq;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQConnectionDetails;
import org.springframework.boot.activemq.autoconfigure.ActiveMQConnectionDetails;
import org.springframework.boot.docker.compose.core.RunningService;
import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory;
import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource;
@@ -75,6 +75,7 @@ plugins.withType(EclipsePlugin) {
}
dependencies {
autoConfiguration(project(path: ":spring-boot-project:spring-boot-activemq", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-actuator-autoconfigure", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-amqp", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-autoconfigure", configuration: "autoConfigurationMetadata"))
@@ -91,6 +92,7 @@ dependencies {
autoConfiguration(project(path: ":spring-boot-project:spring-boot-undertow", configuration: "autoConfigurationMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-activemq", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-actuator", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-actuator-autoconfigure", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-amqp", configuration: "configurationPropertiesMetadata"))
@@ -22,6 +22,5 @@ description = "Starter for JMS messaging using Apache ActiveMQ"
dependencies {
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter"))
api(project(":spring-boot-project:spring-boot-jms"))
api("org.apache.activemq:activemq-client")
api(project(":spring-boot-project:spring-boot-activemq"))
}
@@ -29,7 +29,6 @@ dependencies {
api(project(":spring-boot-project:spring-boot-autoconfigure-all"))
api("org.testcontainers:testcontainers")
dockerTestImplementation(project(":spring-boot-project:spring-boot-jms"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
dockerTestImplementation("ch.qos.logback:logback-classic")
@@ -38,7 +37,6 @@ dependencies {
dockerTestImplementation("com.hazelcast:hazelcast")
dockerTestImplementation("io.micrometer:micrometer-registry-otlp")
dockerTestImplementation("io.rest-assured:rest-assured")
dockerTestImplementation("org.apache.activemq:activemq-client")
dockerTestImplementation("org.apache.activemq:artemis-jakarta-client")
dockerTestImplementation("org.apache.cassandra:java-driver-core") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
@@ -70,6 +68,7 @@ dependencies {
dockerTestRuntimeOnly("org.flywaydb:flyway-database-postgresql")
dockerTestRuntimeOnly("org.postgresql:postgresql")
optional(project(":spring-boot-project:spring-boot-activemq"))
optional(project(":spring-boot-project:spring-boot-amqp"))
optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure"))
optional("org.springframework:spring-test")
@@ -27,8 +27,8 @@ import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
import org.springframework.boot.jms.autoconfigure.JmsAutoConfiguration;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.boot.testsupport.container.TestImage;
@@ -26,8 +26,8 @@ import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration;
import org.springframework.boot.jms.autoconfigure.JmsAutoConfiguration;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.boot.testsupport.container.SymptomaActiveMQContainer;
@@ -18,7 +18,7 @@ package org.springframework.boot.testcontainers.service.connection.activemq;
import org.testcontainers.activemq.ActiveMQContainer;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQConnectionDetails;
import org.springframework.boot.activemq.autoconfigure.ActiveMQConnectionDetails;
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory;
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
@@ -19,7 +19,7 @@ package org.springframework.boot.testcontainers.service.connection.activemq;
import org.testcontainers.containers.Container;
import org.testcontainers.containers.GenericContainer;
import org.springframework.boot.autoconfigure.jms.activemq.ActiveMQConnectionDetails;
import org.springframework.boot.activemq.autoconfigure.ActiveMQConnectionDetails;
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory;
import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;