This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch export-secrets in repository https://gitbox.apache.org/repos/asf/camel.git
commit 09ef41c392408107e11a64e37f69f62337946a56 Author: Andrea Cosentino <[email protected]> AuthorDate: Tue May 9 10:44:28 2023 +0200 CAMEL-19099 - Camel-Jbang Export: Add a flag to include secret refresh properties in application.properties Signed-off-by: Andrea Cosentino <[email protected]> --- .../dsl/jbang/core/commands/ExportSpringBoot.java | 90 ++++++++++++++++++++-- 1 file changed, 85 insertions(+), 5 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java index 17ef567bbf4..6df9850a7e6 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java @@ -21,11 +21,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Properties; -import java.util.Set; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -254,6 +250,34 @@ class ExportSpringBoot extends Export { } sb.append(" </dependency>\n"); } + if (secretsRefresh) { + if (secretsRefreshProviders != null) { + List<String> providers = getSecretProviders(); + for (String provider : providers + ) { + switch (provider) { + case "AWS": + sb.append(" <dependency>\n"); + sb.append(" <groupId>").append("org.apache.camel.springboot").append("</groupId>\n"); + sb.append(" <artifactId>").append("camel-aws-secrets-manager-starter").append("</artifactId>\n"); + sb.append(" </dependency>\n"); + break; + case "GCP": + sb.append(" <dependency>\n"); + sb.append(" <groupId>").append("org.apache.camel.springboot").append("</groupId>\n"); + sb.append(" <artifactId>").append("camel-google-secret-manager-starter").append("</artifactId>\n"); + sb.append(" </dependency>\n"); + break; + case "Azure": + sb.append(" <dependency>\n"); + sb.append(" <groupId>").append("org.apache.camel.springboot").append("</groupId>\n"); + sb.append(" <artifactId>").append("camel-azure-key-vault-starter").append("</artifactId>\n"); + sb.append(" </dependency>\n"); + break; + } + } + } + } context = context.replaceFirst("\\{\\{ \\.CamelDependencies }}", sb.toString()); // add jkube profiles if there is jkube version property @@ -325,6 +349,38 @@ class ExportSpringBoot extends Export { gavs.add(gav); } + if (secretsRefresh) { + if (secretsRefreshProviders != null) { + List<String> providers = getSecretProviders(); + for (String provider : providers + ) { + switch (provider) { + case "AWS": + MavenGav awsGav = new MavenGav(); + awsGav.setGroupId("org.apache.camel.springboot"); + awsGav.setArtifactId("camel-aws-secrets-manager-starter"); + awsGav.setVersion(null); + gavs.add(awsGav); + break; + case "GCP": + MavenGav gcpGav = new MavenGav(); + gcpGav.setGroupId("org.apache.camel.springboot"); + gcpGav.setArtifactId("camel-google-secret-manager-starter"); + gcpGav.setVersion(null); + gavs.add(gcpGav); + break; + case "Azure": + MavenGav azureGav = new MavenGav(); + azureGav.setGroupId("org.apache.camel.springboot"); + azureGav.setArtifactId("camel-azure-key-vault-starter"); + azureGav.setVersion(null); + gavs.add(azureGav); + break; + } + } + } + } + // sort artifacts gavs.sort(mavenGavComparator()); @@ -382,6 +438,30 @@ class ExportSpringBoot extends Export { } } + @Override + protected void prepareApplicationProperties(Properties properties) { + if (secretsRefresh) { + if (secretsRefreshProviders != null) { + List<String> providers = getSecretProviders(); + + for (String provider : providers + ) { + switch (provider) { + case "AWS": + exportAwsSecretsRefreshProp(properties); + break; + case "GCP": + exportGcpSecretsRefreshProp(properties); + break; + case "Azure": + exportAzureSecretsRefreshProp(properties); + break; + } + } + } + } + } + @Override protected String applicationPropertyLine(String key, String value) { // camel.main.x should be renamed to camel.springboot.x
