|
19 | 19 | import io.spring.initializr.generator.buildsystem.Build;
|
20 | 20 | import io.spring.initializr.generator.buildsystem.Dependency;
|
21 | 21 | import io.spring.initializr.generator.buildsystem.DependencyScope;
|
| 22 | +import io.spring.initializr.generator.buildsystem.gradle.GradleBuildSystem; |
| 23 | +import io.spring.initializr.generator.buildsystem.maven.MavenBuildSystem; |
| 24 | +import io.spring.initializr.generator.condition.ConditionalOnBuildSystem; |
22 | 25 | import io.spring.initializr.generator.condition.ConditionalOnRequestedDependency;
|
23 | 26 | import io.spring.initializr.generator.project.ProjectGenerationConfiguration;
|
24 | 27 | import io.spring.initializr.generator.spring.build.BuildCustomizer;
|
| 28 | +import io.spring.initializr.generator.spring.build.gradle.DevelopmentOnlyDependencyGradleBuildCustomizer; |
| 29 | +import io.spring.initializr.generator.spring.build.maven.OptionalDependencyMavenBuildCustomizer; |
| 30 | +import io.spring.start.site.container.ComposeFileCustomizer; |
| 31 | +import io.spring.start.site.container.DockerServiceResolver; |
25 | 32 |
|
26 | 33 | import org.springframework.context.annotation.Bean;
|
27 | 34 |
|
28 | 35 | /**
|
29 | 36 | * Configuration for generation of projects that depend on Spring Azure Docker Compose.
|
30 | 37 | *
|
31 | 38 | * @author Eddú Meléndez
|
| 39 | + * @author Moritz Halbritter |
32 | 40 | */
|
33 | 41 | @ProjectGenerationConfiguration
|
34 | 42 | @ConditionalOnRequestedDependency("azure-storage")
|
35 | 43 | class SpringAzureDockerComposeProjectGenerationConfiguration {
|
36 | 44 |
|
| 45 | + private static final String DEPENDENCY_ID = "spring-azure-docker-compose"; |
| 46 | + |
37 | 47 | @Bean
|
38 | 48 | @ConditionalOnRequestedDependency("docker-compose")
|
39 | 49 | BuildCustomizer<Build> springAzureDockerComposeBuildCustomizer() {
|
40 | 50 | return (build) -> build.dependencies()
|
41 |
| - .add("spring-azure-docker-compose", |
42 |
| - Dependency.withCoordinates("com.azure.spring", "spring-cloud-azure-docker-compose") |
43 |
| - .scope(DependencyScope.TEST_COMPILE)); |
| 51 | + .add(DEPENDENCY_ID, Dependency.withCoordinates("com.azure.spring", "spring-cloud-azure-docker-compose") |
| 52 | + .scope(DependencyScope.RUNTIME)); |
| 53 | + } |
| 54 | + |
| 55 | + @Bean |
| 56 | + @ConditionalOnBuildSystem(MavenBuildSystem.ID) |
| 57 | + OptionalDependencyMavenBuildCustomizer springAzureDockerComposeMavenBuildCustomizer() { |
| 58 | + return new OptionalDependencyMavenBuildCustomizer(DEPENDENCY_ID); |
| 59 | + } |
| 60 | + |
| 61 | + @Bean |
| 62 | + @ConditionalOnBuildSystem(GradleBuildSystem.ID) |
| 63 | + DevelopmentOnlyDependencyGradleBuildCustomizer springAzureDockerComposeGradleBuildCustomizer() { |
| 64 | + return new DevelopmentOnlyDependencyGradleBuildCustomizer(DEPENDENCY_ID); |
| 65 | + } |
| 66 | + |
| 67 | + @Bean |
| 68 | + @ConditionalOnRequestedDependency("docker-compose") |
| 69 | + ComposeFileCustomizer azureStorageComposeFileCustomizer(DockerServiceResolver serviceResolver) { |
| 70 | + return (composeFile) -> serviceResolver.doWith("azurite", |
| 71 | + (service) -> composeFile.services().add("azurite", service)); |
44 | 72 | }
|
45 | 73 |
|
46 | 74 | }
|
0 commit comments