|
1 | 1 | /*
|
2 |
| - * Copyright 2012-2023 the original author or authors. |
| 2 | + * Copyright 2012-2024 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
|
16 | 16 |
|
17 | 17 | package io.spring.start.site.extension.dependency.oracle;
|
18 | 18 |
|
| 19 | +import io.spring.initializr.generator.buildsystem.Build; |
19 | 20 | import io.spring.initializr.generator.condition.ConditionalOnRequestedDependency;
|
20 | 21 | import io.spring.start.site.container.ComposeFileCustomizer;
|
21 | 22 | import io.spring.start.site.container.DockerServiceResolver;
|
|
30 | 31 | *
|
31 | 32 | * @author Moritz Halbritter
|
32 | 33 | * @author Stephane Nicoll
|
| 34 | + * @author Eddú Meléndez |
33 | 35 | */
|
34 | 36 | @Configuration(proxyBeanMethods = false)
|
35 |
| -@ConditionalOnRequestedDependency("oracle") |
36 | 37 | class OracleProjectGenerationConfiguration {
|
37 | 38 |
|
38 | 39 | private static final String TESTCONTAINERS_CLASS_NAME = "org.testcontainers.oracle.OracleContainer";
|
39 | 40 |
|
40 | 41 | @Bean
|
41 | 42 | @ConditionalOnRequestedDependency("testcontainers")
|
42 |
| - ServiceConnectionsCustomizer oracleServiceConnectionsCustomizer(DockerServiceResolver serviceResolver) { |
43 |
| - return (serviceConnections) -> serviceResolver.doWith("oracleFree", |
44 |
| - (service) -> serviceConnections.addServiceConnection( |
| 43 | + ServiceConnectionsCustomizer oracleServiceConnectionsCustomizer(Build build, |
| 44 | + DockerServiceResolver serviceResolver) { |
| 45 | + return (serviceConnections) -> { |
| 46 | + if (isOracleEnabled(build)) { |
| 47 | + serviceResolver.doWith("oracleFree", (service) -> serviceConnections.addServiceConnection( |
45 | 48 | ServiceConnection.ofContainer("oracleFree", service, TESTCONTAINERS_CLASS_NAME, false)));
|
| 49 | + } |
| 50 | + }; |
46 | 51 | }
|
47 | 52 |
|
48 | 53 | @Bean
|
49 | 54 | @ConditionalOnRequestedDependency("docker-compose")
|
50 |
| - ComposeFileCustomizer oracleComposeFileCustomizer(DockerServiceResolver serviceResolver) { |
51 |
| - return (composeFile) -> serviceResolver.doWith("oracleFree", (service) -> composeFile.services() |
52 |
| - .add("oracle", service.andThen((builder) -> builder.environment("ORACLE_PASSWORD", "secret")))); |
| 55 | + ComposeFileCustomizer oracleComposeFileCustomizer(Build build, DockerServiceResolver serviceResolver) { |
| 56 | + return (composeFile) -> { |
| 57 | + if (isOracleEnabled(build)) { |
| 58 | + serviceResolver.doWith("oracleFree", (service) -> composeFile.services() |
| 59 | + .add("oracle", service.andThen((builder) -> builder.environment("ORACLE_PASSWORD", "secret")))); |
| 60 | + } |
| 61 | + }; |
| 62 | + } |
| 63 | + |
| 64 | + private boolean isOracleEnabled(Build build) { |
| 65 | + return build.dependencies().has("oracle") || build.dependencies().has("spring-ai-vectordb-oracle"); |
53 | 66 | }
|
54 | 67 |
|
55 | 68 | }
|
0 commit comments