You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2023/05/09 13:24:43 UTC
[camel] 03/10: CAMEL-19099 - Camel-Jbang Export: Add a flag to include secret refresh properties in application.properties
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 7928d3fc7a2520df3904aa2d1395fc93505f6647
Author: Andrea Cosentino <an...@gmail.com>
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 <an...@gmail.com>
---
.../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 5a8a214fc9a..a86f5d8ee63 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;
@@ -257,6 +253,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
@@ -328,6 +352,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());
@@ -385,6 +441,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