From 26dc878114e2d9f4b80441ab07ae42ad72c81e22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Thu, 12 Sep 2024 16:29:42 -0600 Subject: [PATCH] Fix service connection support to azure storage instead of group id com.azure.spring --- ...ionalOnRequestedSpringAzureDependency.java | 44 -------------- ...questedSpringAzureDependencyCondition.java | 45 -------------- ...ComposeProjectGenerationConfiguration.java | 4 +- ...tainersProjectGenerationConfiguration.java | 4 +- ...edSpringAzureDependencyConditionTests.java | 60 ------------------- ...rsProjectGenerationConfigurationTests.java | 2 +- 6 files changed, 5 insertions(+), 154 deletions(-) delete mode 100644 start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/ConditionalOnRequestedSpringAzureDependency.java delete mode 100644 start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyCondition.java delete mode 100644 start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyConditionTests.java diff --git a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/ConditionalOnRequestedSpringAzureDependency.java b/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/ConditionalOnRequestedSpringAzureDependency.java deleted file mode 100644 index 893fd3ce20..0000000000 --- a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/ConditionalOnRequestedSpringAzureDependency.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2012-2024 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 io.spring.start.site.extension.dependency.springazure; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import io.spring.initializr.generator.project.ProjectDescription; - -import org.springframework.context.annotation.Conditional; - -/** - * Condition that matches when a {@link ProjectDescription} defines a dependency on Spring - * Azure. A generated project may ultimately define a different set of dependencies - * according to the contributors that have been executed. To contribute to the project - * according to the real set, prefer querying the model itself rather than using this - * condition. - * - * @author Eddú Meléndez - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.TYPE, ElementType.METHOD }) -@Documented -@Conditional(OnRequestedSpringAzureDependencyCondition.class) -@interface ConditionalOnRequestedSpringAzureDependency { - -} diff --git a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyCondition.java b/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyCondition.java deleted file mode 100644 index bc20676883..0000000000 --- a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyCondition.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2012-2024 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 io.spring.start.site.extension.dependency.springazure; - -import io.spring.initializr.generator.buildsystem.Dependency; -import io.spring.initializr.generator.condition.ProjectGenerationCondition; -import io.spring.initializr.generator.project.ProjectDescription; - -import org.springframework.context.annotation.ConditionContext; -import org.springframework.core.type.AnnotatedTypeMetadata; - -/** - * {@link ProjectGenerationCondition} implementation for - * {@link ConditionalOnRequestedSpringAzureDependency}. - * - * @author Eddú Meléndez - */ -class OnRequestedSpringAzureDependencyCondition extends ProjectGenerationCondition { - - @Override - protected boolean matches(ProjectDescription description, ConditionContext context, - AnnotatedTypeMetadata metadata) { - for (Dependency dependency : description.getRequestedDependencies().values()) { - if (dependency.getGroupId().equals("com.azure.spring")) { - return true; - } - } - return false; - } - -} diff --git a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureDockerComposeProjectGenerationConfiguration.java b/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureDockerComposeProjectGenerationConfiguration.java index a541ef00d8..ce80a7707a 100644 --- a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureDockerComposeProjectGenerationConfiguration.java +++ b/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureDockerComposeProjectGenerationConfiguration.java @@ -31,11 +31,11 @@ * @author Eddú Meléndez */ @ProjectGenerationConfiguration -@ConditionalOnRequestedDependency("docker-compose") -@ConditionalOnRequestedSpringAzureDependency +@ConditionalOnRequestedDependency("azure-storage") class SpringAzureDockerComposeProjectGenerationConfiguration { @Bean + @ConditionalOnRequestedDependency("docker-compose") BuildCustomizer springAzureDockerComposeBuildCustomizer() { return (build) -> build.dependencies() .add("spring-azure-docker-compose", diff --git a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfiguration.java b/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfiguration.java index f4265a14c0..b4aec46743 100644 --- a/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfiguration.java +++ b/start-site/src/main/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfiguration.java @@ -31,11 +31,11 @@ * @author Eddú Meléndez */ @ProjectGenerationConfiguration -@ConditionalOnRequestedDependency("testcontainers") -@ConditionalOnRequestedSpringAzureDependency +@ConditionalOnRequestedDependency("azure-storage") class SpringAzureTestcontainersProjectGenerationConfiguration { @Bean + @ConditionalOnRequestedDependency("testcontainers") BuildCustomizer springAzureTestcontainersBuildCustomizer() { return (build) -> build.dependencies() .add("spring-azure-testcontainers", diff --git a/start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyConditionTests.java b/start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyConditionTests.java deleted file mode 100644 index fa65287a9d..0000000000 --- a/start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/OnRequestedSpringAzureDependencyConditionTests.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2012-2024 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 io.spring.start.site.extension.dependency.springazure; - -import io.spring.initializr.generator.buildsystem.Dependency; -import io.spring.initializr.generator.project.MutableProjectDescription; -import io.spring.initializr.generator.project.ProjectDescription; -import org.junit.jupiter.api.Test; - -import org.springframework.context.annotation.ConditionContext; -import org.springframework.core.type.AnnotatedTypeMetadata; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; - -/** - * Tests for {@link OnRequestedSpringAzureDependencyCondition}. - * - * @author Eddú Meléndez - */ -class OnRequestedSpringAzureDependencyConditionTests { - - @Test - void shouldMatchIfSpringAzureHasBeenRequested() { - OnRequestedSpringAzureDependencyCondition condition = new OnRequestedSpringAzureDependencyCondition(); - MutableProjectDescription description = new MutableProjectDescription(); - description.addDependency("azure-storage", - Dependency.withCoordinates("com.azure.spring", "spring-cloud-azure-starter-storage").build()); - assertThat(matches(condition, description)).isTrue(); - } - - @Test - void shouldNotMatchIfSpringAzureHasNotBeenRequested() { - OnRequestedSpringAzureDependencyCondition condition = new OnRequestedSpringAzureDependencyCondition(); - MutableProjectDescription description = new MutableProjectDescription(); - description.addDependency("devtools", - Dependency.withCoordinates("org.springframework.boot", "spring-boot-devtools").build()); - assertThat(matches(condition, description)).isFalse(); - } - - private static boolean matches(OnRequestedSpringAzureDependencyCondition condition, - ProjectDescription description) { - return condition.matches(description, mock(ConditionContext.class), mock(AnnotatedTypeMetadata.class)); - } - -} diff --git a/start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfigurationTests.java b/start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfigurationTests.java index 74208328fe..7863ef955c 100644 --- a/start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfigurationTests.java +++ b/start-site/src/test/java/io/spring/start/site/extension/dependency/springazure/SpringAzureTestcontainersProjectGenerationConfigurationTests.java @@ -38,7 +38,7 @@ void springAzureTestcontainersDependencyIsAdded() { @Test void shouldNotAddSpringAzureTestcontainersDependencyIfNoSpringAzureDependencyIsSelected() { - ProjectRequest projectRequest = createProjectRequest("testcontainers", "web"); + ProjectRequest projectRequest = createProjectRequest("testcontainers", "azure-keyvault"); assertThat(mavenPom(projectRequest)).doesNotHaveDependency("com.azure.spring", "spring-cloud-azure-testcontainers"); }