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