diff --git a/spring-boot-project/spring-boot-artemis/build.gradle b/spring-boot-project/spring-boot-artemis/build.gradle index db6de803a4f..8370137e3be 100644 --- a/spring-boot-project/spring-boot-artemis/build.gradle +++ b/spring-boot-project/spring-boot-artemis/build.gradle @@ -31,6 +31,7 @@ dependencies { api("org.apache.activemq:artemis-jakarta-client") optional(project(":spring-boot-project:spring-boot-autoconfigure")) + optional(project(":spring-boot-project:spring-boot-docker-compose")) optional(project(":spring-boot-project:spring-boot-testcontainers")) optional(project(":spring-boot-project:spring-boot-tx")) optional("org.apache.activemq:artemis-jakarta-server") @@ -40,6 +41,7 @@ dependencies { optional("org.testcontainers:activemq") dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) + dockerTestImplementation(testFixtures(project(":spring-boot-project:spring-boot-docker-compose"))) dockerTestImplementation("ch.qos.logback:logback-classic") dockerTestImplementation("org.testcontainers:junit-jupiter") diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-artemis/src/dockerTest/java/org/springframework/boot/artemis/docker/compose/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java similarity index 95% rename from spring-boot-project/spring-boot-docker-compose-all/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java rename to spring-boot-project/spring-boot-artemis/src/dockerTest/java/org/springframework/boot/artemis/docker/compose/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java index e382e4d30b4..a06c69aa6b7 100644 --- a/spring-boot-project/spring-boot-docker-compose-all/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-artemis/src/dockerTest/java/org/springframework/boot/artemis/docker/compose/ArtemisDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.docker.compose.service.connection.activemq; +package org.springframework.boot.artemis.docker.compose; import org.springframework.boot.artemis.autoconfigure.ArtemisConnectionDetails; import org.springframework.boot.artemis.autoconfigure.ArtemisMode; diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/activemq/artemis-compose.yaml b/spring-boot-project/spring-boot-artemis/src/dockerTest/resources/org/springframework/boot/artemis/docker/compose/artemis-compose.yaml similarity index 100% rename from spring-boot-project/spring-boot-docker-compose-all/src/dockerTest/resources/org/springframework/boot/docker/compose/service/connection/activemq/artemis-compose.yaml rename to spring-boot-project/spring-boot-artemis/src/dockerTest/resources/org/springframework/boot/artemis/docker/compose/artemis-compose.yaml diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/ArtemisDockerComposeConnectionDetailsFactory.java similarity index 97% rename from spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactory.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/ArtemisDockerComposeConnectionDetailsFactory.java index 47707e98221..4e491ecdcf3 100644 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisDockerComposeConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/ArtemisDockerComposeConnectionDetailsFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.docker.compose.service.connection.activemq; +package org.springframework.boot.artemis.docker.compose; import org.springframework.boot.artemis.autoconfigure.ArtemisConnectionDetails; import org.springframework.boot.artemis.autoconfigure.ArtemisMode; diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisEnvironment.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/ArtemisEnvironment.java similarity index 93% rename from spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisEnvironment.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/ArtemisEnvironment.java index c2ef7cff06b..77791b5823e 100644 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisEnvironment.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/ArtemisEnvironment.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.docker.compose.service.connection.activemq; +package org.springframework.boot.artemis.docker.compose; import java.util.Map; diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/package-info.java b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/package-info.java similarity index 81% rename from spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/package-info.java rename to spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/package-info.java index d789c4dd323..dd415333e26 100644 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/package-info.java +++ b/spring-boot-project/spring-boot-artemis/src/main/java/org/springframework/boot/artemis/docker/compose/package-info.java @@ -15,6 +15,6 @@ */ /** - * Auto-configuration for Docker Compose ActiveMQ service connections. + * Support for Docker Compose Artemis service connections. */ -package org.springframework.boot.docker.compose.service.connection.activemq; +package org.springframework.boot.artemis.docker.compose; diff --git a/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring.factories index f2cfe0ac099..b664209f84b 100644 --- a/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-artemis/src/main/resources/META-INF/spring.factories @@ -1,2 +1,4 @@ +# Connection Details Factories org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ +org.springframework.boot.artemis.docker.compose.ArtemisDockerComposeConnectionDetailsFactory,\ org.springframework.boot.artemis.testcontainers.ArtemisContainerConnectionDetailsFactory diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/test/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisEnvironmentTests.java b/spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/docker/compose/ArtemisEnvironmentTests.java similarity index 95% rename from spring-boot-project/spring-boot-docker-compose-all/src/test/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisEnvironmentTests.java rename to spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/docker/compose/ArtemisEnvironmentTests.java index 57c1e43f75f..fe3e9008da7 100644 --- a/spring-boot-project/spring-boot-docker-compose-all/src/test/java/org/springframework/boot/docker/compose/service/connection/activemq/ArtemisEnvironmentTests.java +++ b/spring-boot-project/spring-boot-artemis/src/test/java/org/springframework/boot/artemis/docker/compose/ArtemisEnvironmentTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.docker.compose.service.connection.activemq; +package org.springframework.boot.artemis.docker.compose; import java.util.Collections; import java.util.Map; diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQClassicDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQClassicDockerComposeConnectionDetailsFactory.java deleted file mode 100644 index 26b3ab0b3da..00000000000 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQClassicDockerComposeConnectionDetailsFactory.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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. - */ - -package org.springframework.boot.activemq.docker.compose; - -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; - -/** - * {@link DockerComposeConnectionDetailsFactory} to create - * {@link ActiveMQConnectionDetails} for an {@code activemq} service. - * - * @author Stephane Nicoll - * @author Eddú Meléndez - */ -class ActiveMQClassicDockerComposeConnectionDetailsFactory - extends DockerComposeConnectionDetailsFactory { - - private static final int ACTIVEMQ_PORT = 61616; - - protected ActiveMQClassicDockerComposeConnectionDetailsFactory() { - super("apache/activemq-classic"); - } - - @Override - protected ActiveMQConnectionDetails getDockerComposeConnectionDetails(DockerComposeConnectionSource source) { - return new ActiveMQDockerComposeConnectionDetails(source.getRunningService()); - } - - /** - * {@link ActiveMQConnectionDetails} backed by an {@code activemq} - * {@link RunningService}. - */ - static class ActiveMQDockerComposeConnectionDetails extends DockerComposeConnectionDetails - implements ActiveMQConnectionDetails { - - private final ActiveMQClassicEnvironment environment; - - private final String brokerUrl; - - protected ActiveMQDockerComposeConnectionDetails(RunningService service) { - super(service); - this.environment = new ActiveMQClassicEnvironment(service.env()); - this.brokerUrl = "tcp://" + service.host() + ":" + service.ports().get(ACTIVEMQ_PORT); - } - - @Override - public String getBrokerUrl() { - return this.brokerUrl; - } - - @Override - public String getUser() { - return this.environment.getUser(); - } - - @Override - public String getPassword() { - return this.environment.getPassword(); - } - - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQClassicEnvironment.java b/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQClassicEnvironment.java deleted file mode 100644 index aa6963e8edf..00000000000 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQClassicEnvironment.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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. - */ - -package org.springframework.boot.activemq.docker.compose; - -import java.util.Map; - -/** - * ActiveMQ environment details. - * - * @author Stephane Nicoll - * @author Eddú Meléndez - */ -class ActiveMQClassicEnvironment { - - private final String user; - - private final String password; - - ActiveMQClassicEnvironment(Map env) { - this.user = env.get("ACTIVEMQ_CONNECTION_USER"); - this.password = env.get("ACTIVEMQ_CONNECTION_PASSWORD"); - } - - String getUser() { - return this.user; - } - - String getPassword() { - return this.password; - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQDockerComposeConnectionDetailsFactory.java b/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQDockerComposeConnectionDetailsFactory.java deleted file mode 100644 index 357f70e5502..00000000000 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQDockerComposeConnectionDetailsFactory.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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. - */ - -package org.springframework.boot.activemq.docker.compose; - -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; - -/** - * {@link DockerComposeConnectionDetailsFactory} to create - * {@link ActiveMQConnectionDetails} for an {@code activemq} service. - * - * @author Stephane Nicoll - */ -class ActiveMQDockerComposeConnectionDetailsFactory - extends DockerComposeConnectionDetailsFactory { - - private static final int ACTIVEMQ_PORT = 61616; - - protected ActiveMQDockerComposeConnectionDetailsFactory() { - super("symptoma/activemq"); - } - - @Override - protected ActiveMQConnectionDetails getDockerComposeConnectionDetails(DockerComposeConnectionSource source) { - return new ActiveMQDockerComposeConnectionDetails(source.getRunningService()); - } - - /** - * {@link ActiveMQConnectionDetails} backed by an {@code activemq} - * {@link RunningService}. - */ - static class ActiveMQDockerComposeConnectionDetails extends DockerComposeConnectionDetails - implements ActiveMQConnectionDetails { - - private final ActiveMQEnvironment environment; - - private final String brokerUrl; - - protected ActiveMQDockerComposeConnectionDetails(RunningService service) { - super(service); - this.environment = new ActiveMQEnvironment(service.env()); - this.brokerUrl = "tcp://" + service.host() + ":" + service.ports().get(ACTIVEMQ_PORT); - } - - @Override - public String getBrokerUrl() { - return this.brokerUrl; - } - - @Override - public String getUser() { - return this.environment.getUser(); - } - - @Override - public String getPassword() { - return this.environment.getPassword(); - } - - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQEnvironment.java b/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQEnvironment.java deleted file mode 100644 index 06d6562bfb6..00000000000 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/java/org/springframework/boot/docker/compose/service/connection/activemq/ActiveMQEnvironment.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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. - */ - -package org.springframework.boot.activemq.docker.compose; - -import java.util.Map; - -/** - * ActiveMQ environment details. - * - * @author Stephane Nicoll - */ -class ActiveMQEnvironment { - - private final String user; - - private final String password; - - ActiveMQEnvironment(Map env) { - this.user = env.get("ACTIVEMQ_USERNAME"); - this.password = env.get("ACTIVEMQ_PASSWORD"); - } - - String getUser() { - return this.user; - } - - String getPassword() { - return this.password; - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose-all/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-docker-compose-all/src/main/resources/META-INF/spring.factories index eb7ff88bb30..26f8b51cda8 100644 --- a/spring-boot-project/spring-boot-docker-compose-all/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-docker-compose-all/src/main/resources/META-INF/spring.factories @@ -1,6 +1,5 @@ # Connection Details Factories org.springframework.boot.autoconfigure.service.connection.ConnectionDetailsFactory=\ -org.springframework.boot.docker.compose.service.connection.activemq.ArtemisDockerComposeConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.cassandra.CassandraDockerComposeConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.clickhouse.ClickHouseJdbcDockerComposeConnectionDetailsFactory,\ org.springframework.boot.docker.compose.service.connection.clickhouse.ClickHouseR2dbcDockerComposeConnectionDetailsFactory,\