From 524db779e583026f050496df59b6c6f7524fde2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 18 Mar 2025 15:00:11 +0100 Subject: [PATCH] Create spring-boot-artemis module --- settings.gradle | 1 + .../build.gradle | 1 + ...JmsHealthContributorAutoConfiguration.java | 5 +- ...althContributorAutoConfigurationTests.java | 2 +- .../spring-boot-artemis/build.gradle | 25 ++++++ .../ArtemisAutoConfiguration.java | 2 +- .../ArtemisConfigurationCustomizer.java | 4 +- .../ArtemisConnectionDetails.java | 4 +- ...ArtemisConnectionFactoryConfiguration.java | 2 +- .../ArtemisConnectionFactoryFactory.java | 2 +- .../ArtemisEmbeddedConfigurationFactory.java | 4 +- .../ArtemisEmbeddedServerConfiguration.java | 2 +- .../artemis/autoconfigure}/ArtemisMode.java | 4 +- .../ArtemisNoOpBindingRegistry.java | 4 +- .../autoconfigure}/ArtemisProperties.java | 2 +- ...temisXAConnectionFactoryConfiguration.java | 4 +- .../artemis/autoconfigure}/package-info.java | 2 +- ...itional-spring-configuration-metadata.json | 87 +++++++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../ArtemisAutoConfigurationTests.java | 4 +- ...emisEmbeddedConfigurationFactoryTests.java | 4 +- .../build.gradle | 3 +- ...sageConverterBackgroundPreinitializer.java | 5 +- .../transaction/jta/JtaAutoConfiguration.java | 9 +- ...itional-spring-configuration-metadata.json | 84 +----------------- ...ot.autoconfigure.AutoConfiguration.imports | 1 - .../spring-boot-dependencies/build.gradle | 1 + .../spring-boot-docker-compose/build.gradle | 1 + ...nectionDetailsFactoryIntegrationTests.java | 6 +- ...DockerComposeConnectionDetailsFactory.java | 6 +- .../spring-boot-docs/build.gradle | 2 + .../spring-boot-starter-artemis/build.gradle | 3 +- .../spring-boot-testcontainers/build.gradle | 2 +- ...nectionDetailsFactoryIntegrationTests.java | 2 +- ...emisContainerConnectionDetailsFactory.java | 6 +- 35 files changed, 164 insertions(+), 133 deletions(-) create mode 100644 spring-boot-project/spring-boot-artemis/build.gradle rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisAutoConfiguration.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisConfigurationCustomizer.java (91%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisConnectionDetails.java (91%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisConnectionFactoryConfiguration.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisConnectionFactoryFactory.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisEmbeddedConfigurationFactory.java (97%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisEmbeddedServerConfiguration.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisMode.java (88%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisNoOpBindingRegistry.java (90%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisProperties.java (98%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/ArtemisXAConnectionFactoryConfiguration.java (95%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure}/package-info.java (92%) create mode 100644 spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/additional-spring-configuration-metadata.json create mode 100644 spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure}/ArtemisAutoConfigurationTests.java (99%) rename spring-boot-project/{spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis => spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure}/ArtemisEmbeddedConfigurationFactoryTests.java (96%) diff --git a/settings.gradle b/settings.gradle index dfd2a47a4e..f5e41e8ced 100644 --- a/settings.gradle +++ b/settings.gradle @@ -44,6 +44,7 @@ include "spring-boot-project:spring-boot-actuator-autoconfigure" include "spring-boot-project:spring-boot-all" include "spring-boot-project:spring-boot-all-integration-tests" include "spring-boot-project:spring-boot-amqp" +include "spring-boot-project:spring-boot-artemis" include "spring-boot-project:spring-boot-autoconfigure" include "spring-boot-project:spring-boot-autoconfigure-all" include "spring-boot-project:spring-boot-dependencies" diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle index 9dcd62dbd0..e6905a7e05 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle @@ -19,6 +19,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-activemq")) optional(project(":spring-boot-project:spring-boot-amqp")) + optional(project(":spring-boot-project:spring-boot-artemis")) optional(project(":spring-boot-project:spring-boot-jackson")) optional(project(":spring-boot-project:spring-boot-jetty")) optional(project(":spring-boot-project:spring-boot-jsonb")) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java index 68111ed5ff..a0c993e589 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfiguration.java @@ -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.artemis.ArtemisAutoConfiguration; import org.springframework.context.annotation.Bean; /** @@ -37,8 +36,8 @@ import org.springframework.context.annotation.Bean; * @author Stephane Nicoll * @since 2.0.0 */ -@AutoConfiguration(after = ArtemisAutoConfiguration.class, - afterName = "org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration") +@AutoConfiguration(afterName = { "org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration", + "org.springframework.boot.artemis.autoconfigure.ArtemisAutoConfiguration" }) @ConditionalOnClass(ConnectionFactory.class) @ConditionalOnBean(ConnectionFactory.class) @ConditionalOnEnabledHealthIndicator("jms") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java index 6209298065..f8d420d566 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/jms/JmsHealthContributorAutoConfigurationTests.java @@ -20,8 +20,8 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; import org.springframework.boot.actuate.jms.JmsHealthIndicator; +import org.springframework.boot.artemis.autoconfigure.ArtemisAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-boot-project/spring-boot-artemis/build.gradle b/spring-boot-project/spring-boot-artemis/build.gradle new file mode 100644 index 0000000000..bb950f037a --- /dev/null +++ b/spring-boot-project/spring-boot-artemis/build.gradle @@ -0,0 +1,25 @@ +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 Artemis" + +dependencies { + api(project(":spring-boot-project:spring-boot-jms")) + api("org.apache.activemq:artemis-jakarta-client") + + optional(project(":spring-boot-project:spring-boot-autoconfigure")) + optional("org.apache.activemq:artemis-jakarta-server") + 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") +} diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisAutoConfiguration.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisAutoConfiguration.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisAutoConfiguration.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisAutoConfiguration.java index 260e0d553a..64d5d29e0b 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisAutoConfiguration.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import jakarta.jms.ConnectionFactory; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConfigurationCustomizer.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConfigurationCustomizer.java similarity index 91% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConfigurationCustomizer.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConfigurationCustomizer.java index 65f90b83fe..032b5282ac 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConfigurationCustomizer.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConfigurationCustomizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2025 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import org.apache.activemq.artemis.core.config.Configuration; import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionDetails.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionDetails.java similarity index 91% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionDetails.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionDetails.java index dea123a3c1..156605a88a 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionDetails.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionFactoryConfiguration.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionFactoryConfiguration.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionFactoryConfiguration.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionFactoryConfiguration.java index e5dc50868b..c7550e22a9 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionFactoryConfiguration.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionFactoryConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import jakarta.jms.ConnectionFactory; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionFactoryFactory.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionFactoryFactory.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionFactoryFactory.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionFactoryFactory.java index 5fc00df65e..b3b1dfb017 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisConnectionFactoryFactory.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisConnectionFactoryFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import java.util.function.Function; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedConfigurationFactory.java similarity index 97% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedConfigurationFactory.java index 1c1e505f81..38c28fa125 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedConfigurationFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import java.io.File; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedServerConfiguration.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedServerConfiguration.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedServerConfiguration.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedServerConfiguration.java index 27dd2d4dd8..893d92b263 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedServerConfiguration.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedServerConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import org.apache.activemq.artemis.api.core.QueueConfiguration; import org.apache.activemq.artemis.api.core.RoutingType; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisMode.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisMode.java similarity index 88% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisMode.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisMode.java index 7f60ad5d71..4d3a8da31b 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisMode.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisMode.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2025 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; /** * Define the mode in which Artemis can operate. diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisNoOpBindingRegistry.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisNoOpBindingRegistry.java similarity index 90% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisNoOpBindingRegistry.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisNoOpBindingRegistry.java index fe9f7ac4ea..4773be288c 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisNoOpBindingRegistry.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisNoOpBindingRegistry.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2025 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import org.apache.activemq.artemis.spi.core.naming.BindingRegistry; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisProperties.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisProperties.java similarity index 98% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisProperties.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisProperties.java index 77c97dcfc2..05f6ea5753 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisProperties.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import java.util.HashMap; import java.util.Map; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisXAConnectionFactoryConfiguration.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisXAConnectionFactoryConfiguration.java similarity index 95% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisXAConnectionFactoryConfiguration.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisXAConnectionFactoryConfiguration.java index 0d71430d59..d6bbab7da4 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisXAConnectionFactoryConfiguration.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/ArtemisXAConnectionFactoryConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import jakarta.jms.ConnectionFactory; import jakarta.transaction.TransactionManager; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/package-info.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/package-info.java similarity index 92% rename from spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/package-info.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/package-info.java index 24eabca957..995f5497b3 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/package-info.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/autoconfigure/package-info.java @@ -19,4 +19,4 @@ * * @author EddĂș MelĂ©ndez */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; diff --git a/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 0000000000..3474688890 --- /dev/null +++ b/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,87 @@ +{ + "groups": [], + "properties": [ + { + "name": "spring.artemis.broker-url", + "defaultValue": "tcp://localhost:61616" + }, + { + "name": "spring.artemis.host", + "type": "java.lang.String", + "deprecation": { + "replacement": "spring.artemis.broker-url", + "level": "error" + } + }, + { + "name": "spring.artemis.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.artemis.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.artemis.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.artemis.pool.idle-timeout", + "type": "java.time.Duration", + "description": "Connection idle timeout.", + "sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties", + "defaultValue": "30s" + }, + { + "name": "spring.artemis.pool.max-connections", + "type": "java.lang.Integer", + "description": "Maximum number of pooled connections.", + "sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties", + "defaultValue": 1 + }, + { + "name": "spring.artemis.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.artemis.pool.maximum-active-session-per-connection", + "deprecation": { + "replacement": "spring.artemis.pool.max-sessions-per-connection" + } + }, + { + "name": "spring.artemis.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.artemis.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.artemis.port", + "type": "java.lang.Integer", + "deprecation": { + "replacement": "spring.artemis.broker-url", + "level": "error" + } + } + ] +} diff --git a/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000000..deda68fed4 --- /dev/null +++ b/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +org.springframework.boot.artemis.autoconfigure.ArtemisAutoConfiguration diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisAutoConfigurationTests.java b/spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure/ArtemisAutoConfigurationTests.java similarity index 99% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisAutoConfigurationTests.java rename to spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure/ArtemisAutoConfigurationTests.java index e69a5ac51d..2895f4b280 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure/ArtemisAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import java.io.File; import java.io.IOException; @@ -46,8 +46,8 @@ import org.junit.jupiter.api.condition.JRE; import org.junit.jupiter.api.io.TempDir; import org.messaginghub.pooled.jms.JmsPoolConnectionFactory; +import org.springframework.boot.artemis.autoconfigure.ArtemisAutoConfiguration.PropertiesArtemisConnectionDetails; import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration.PropertiesArtemisConnectionDetails; import org.springframework.boot.jms.autoconfigure.JmsAutoConfiguration; import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.assertj.AssertableApplicationContext; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java b/spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedConfigurationFactoryTests.java similarity index 96% rename from spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java rename to spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedConfigurationFactoryTests.java index 577e4a4b19..8189779dd8 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactoryTests.java +++ b/spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/autoconfigure/ArtemisEmbeddedConfigurationFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.autoconfigure.jms.artemis; +package org.springframework.boot.artemis.autoconfigure; import java.util.List; import java.util.Map; diff --git a/spring-boot-project/spring-boot-autoconfigure-all/build.gradle b/spring-boot-project/spring-boot-autoconfigure-all/build.gradle index a8183eef4e..c394fa59c0 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-autoconfigure-all/build.gradle @@ -43,6 +43,7 @@ dependencies { dockerTestImplementation("org.testcontainers:testcontainers") optional(project(":spring-boot-project:spring-boot-activemq")) + optional(project(":spring-boot-project:spring-boot-artemis")) optional(project(":spring-boot-project:spring-boot-jackson")) optional(project(":spring-boot-project:spring-boot-jsonb")) optional(project(":spring-boot-project:spring-boot-reactor-netty")) @@ -82,8 +83,6 @@ dependencies { optional("jakarta.ws.rs:jakarta.ws.rs-api") optional("javax.cache:cache-api") optional("javax.money:money-api") - optional("org.apache.activemq:artemis-jakarta-client") - optional("org.apache.activemq:artemis-jakarta-server") optional("org.apache.commons:commons-dbcp2") optional("org.apache.httpcomponents.client5:httpclient5") optional("org.apache.httpcomponents.core5:httpcore5-reactive") diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/MessageConverterBackgroundPreinitializer.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/MessageConverterBackgroundPreinitializer.java index 9a9c97249e..55d1f60b02 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/MessageConverterBackgroundPreinitializer.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/MessageConverterBackgroundPreinitializer.java @@ -16,13 +16,12 @@ package org.springframework.boot.autoconfigure.http; -import org.apache.activemq.artemis.spi.core.protocol.MessageConverter; - import org.springframework.boot.autoconfigure.preinitialize.BackgroundPreinitializer; +import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter; /** - * {@link BackgroundPreinitializer} Spring's {@link MessageConverter} implementations. + * {@link BackgroundPreinitializer} Spring's {@link HttpMessageConverter} implementations. * * @author Phillip Webb */ diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/transaction/jta/JtaAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/transaction/jta/JtaAutoConfiguration.java index f27ad1f86c..f1e4989cfd 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/transaction/jta/JtaAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/transaction/jta/JtaAutoConfiguration.java @@ -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.artemis.ArtemisAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration; import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizationAutoConfiguration; @@ -36,10 +35,10 @@ import org.springframework.context.annotation.Import; * @since 1.2.0 */ @AutoConfiguration( - before = { XADataSourceAutoConfiguration.class, ArtemisAutoConfiguration.class, - HibernateJpaAutoConfiguration.class, TransactionAutoConfiguration.class, - TransactionManagerCustomizationAutoConfiguration.class }, - beforeName = "org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration") + before = { XADataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class, + TransactionAutoConfiguration.class, TransactionManagerCustomizationAutoConfiguration.class }, + beforeName = { "org.springframework.boot.activemq.autoconfigure.ActiveMQAutoConfiguration", + "org.springframework.boot.artemis.autoconfigure.ArtemisAutoConfiguration" }) @ConditionalOnClass(jakarta.transaction.Transaction.class) @ConditionalOnBooleanProperty(name = "spring.jta.enabled", matchIfMissing = true) @Import(JndiJtaConfiguration.class) diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json index eee30db4d9..958947e9db 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -13,89 +13,7 @@ "description": "Whether subclass-based (CGLIB) proxies are to be created (true), as opposed to standard Java interface-based proxies (false).", "defaultValue": true }, - { - "name": "spring.artemis.broker-url", - "defaultValue": "tcp://localhost:61616" - }, - { - "name": "spring.artemis.host", - "type": "java.lang.String", - "deprecation": { - "replacement": "spring.artemis.broker-url", - "level": "error" - } - }, - { - "name": "spring.artemis.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.artemis.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.artemis.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.artemis.pool.idle-timeout", - "type": "java.time.Duration", - "description": "Connection idle timeout.", - "sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties", - "defaultValue": "30s" - }, - { - "name": "spring.artemis.pool.max-connections", - "type": "java.lang.Integer", - "description": "Maximum number of pooled connections.", - "sourceType": "org.springframework.boot.jms.autoconfigure.JmsPoolConnectionFactoryProperties", - "defaultValue": 1 - }, - { - "name": "spring.artemis.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.artemis.pool.maximum-active-session-per-connection", - "deprecation": { - "replacement": "spring.artemis.pool.max-sessions-per-connection" - } - }, - { - "name": "spring.artemis.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.artemis.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.artemis.port", - "type": "java.lang.Integer", - "deprecation": { - "replacement": "spring.artemis.broker-url", - "level": "error" - } - }, - { + { "name": "spring.batch.initialize-schema", "type": "org.springframework.boot.sql.init.DatabaseInitializationMode", "deprecation": { diff --git a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 888469a8d7..0993a62e53 100644 --- a/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -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.artemis.ArtemisAutoConfiguration org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration org.springframework.boot.autoconfigure.ldap.embedded.EmbeddedLdapAutoConfiguration diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 989156059d..401d09d21c 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1978,6 +1978,7 @@ bom { "spring-boot-actuator", "spring-boot-actuator-autoconfigure", "spring-boot-amqp", + "spring-boot-artemis", "spring-boot-autoconfigure", "spring-boot-autoconfigure-processor", "spring-boot-buildpack-platform", diff --git a/spring-boot-project/spring-boot-docker-compose/build.gradle b/spring-boot-project/spring-boot-docker-compose/build.gradle index 0766adae8b..301b1b5cfc 100644 --- a/spring-boot-project/spring-boot-docker-compose/build.gradle +++ b/spring-boot-project/spring-boot-docker-compose/build.gradle @@ -32,6 +32,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-activemq")) optional(project(":spring-boot-project:spring-boot-amqp")) + optional(project(":spring-boot-project:spring-boot-artemis")) optional(project(":spring-boot-project:spring-boot-autoconfigure-all")) optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure")) optional("com.hazelcast:hazelcast") diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java index b1174135fb..b9207f7d67 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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,8 +16,8 @@ package org.springframework.boot.docker.compose.service.connection.activemq; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisConnectionDetails; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisMode; +import org.springframework.boot.artemis.autoconfigure.ArtemisConnectionDetails; +import org.springframework.boot.artemis.autoconfigure.ArtemisMode; import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; import org.springframework.boot.testsupport.container.TestImage; diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactory.java index 4995ef24ca..4801e8b659 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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,8 +16,8 @@ package org.springframework.boot.docker.compose.service.connection.activemq; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisConnectionDetails; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisMode; +import org.springframework.boot.artemis.autoconfigure.ArtemisConnectionDetails; +import org.springframework.boot.artemis.autoconfigure.ArtemisMode; 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; diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index f8e19fca00..fd3554b929 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -62,6 +62,7 @@ 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-artemis", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-autoconfigure", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-autoconfigure-all", configuration: "autoConfigurationMetadata")) autoConfiguration(project(path: ":spring-boot-project:spring-boot-devtools", configuration: "autoConfigurationMetadata")) @@ -80,6 +81,7 @@ dependencies { 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")) + configurationProperties(project(path: ":spring-boot-project:spring-boot-artemis", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-autoconfigure", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-autoconfigure-all", configuration: "configurationPropertiesMetadata")) configurationProperties(project(path: ":spring-boot-project:spring-boot-devtools", configuration: "configurationPropertiesMetadata")) diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle index 6c27e66867..1606067174 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle @@ -6,6 +6,5 @@ description = "Starter for JMS messaging using Apache Artemis" dependencies { api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter")) - api(project(":spring-boot-project:spring-boot-jms")) - api("org.apache.activemq:artemis-jakarta-client") + api(project(":spring-boot-project:spring-boot-artemis")) } diff --git a/spring-boot-project/spring-boot-testcontainers/build.gradle b/spring-boot-project/spring-boot-testcontainers/build.gradle index d239d91671..aec51af154 100644 --- a/spring-boot-project/spring-boot-testcontainers/build.gradle +++ b/spring-boot-project/spring-boot-testcontainers/build.gradle @@ -21,7 +21,6 @@ dependencies { dockerTestImplementation("com.hazelcast:hazelcast") dockerTestImplementation("io.micrometer:micrometer-registry-otlp") dockerTestImplementation("io.rest-assured:rest-assured") - dockerTestImplementation("org.apache.activemq:artemis-jakarta-client") dockerTestImplementation("org.apache.cassandra:java-driver-core") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } @@ -53,6 +52,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-activemq")) optional(project(":spring-boot-project:spring-boot-amqp")) + optional(project(":spring-boot-project:spring-boot-artemis")) optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure")) optional("org.springframework:spring-test") optional("org.springframework.data:spring-data-mongodb") diff --git a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactoryIntegrationTests.java index 4d0280dae5..cabb3612f1 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactoryIntegrationTests.java @@ -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.artemis.autoconfigure.ArtemisAutoConfiguration; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration; import org.springframework.boot.jms.autoconfigure.JmsAutoConfiguration; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; import org.springframework.boot.testsupport.container.TestImage; diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactory.java index 798ff7d97f..66f158aab8 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/activemq/ArtemisContainerConnectionDetailsFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 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. @@ -18,8 +18,8 @@ package org.springframework.boot.testcontainers.service.connection.activemq; import org.testcontainers.activemq.ArtemisContainer; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisConnectionDetails; -import org.springframework.boot.autoconfigure.jms.artemis.ArtemisMode; +import org.springframework.boot.artemis.autoconfigure.ArtemisConnectionDetails; +import org.springframework.boot.artemis.autoconfigure.ArtemisMode; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource; import org.springframework.boot.testcontainers.service.connection.ServiceConnection;