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:44 UTC

[camel] 04/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 b52beb5d6969342d407cf46da29fde82bab06418
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue May 9 11:01:06 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/ExportCamelMain.java   | 53 ++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index a62ee79ce46..92c143e1492 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -196,6 +196,36 @@ class ExportCamelMain 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").append("</groupId>\n");
+                            sb.append("            <artifactId>").append("camel-aws-secrets-manager").append("</artifactId>\n");
+                            sb.append("        </dependency>\n");
+                            break;
+                        case "GCP":
+                            sb.append("        <dependency>\n");
+                            sb.append("            <groupId>").append("org.apache.camel").append("</groupId>\n");
+                            sb.append("            <artifactId>").append("camel-google-secret-manager").append("</artifactId>\n");
+                            sb.append("        </dependency>\n");
+                            break;
+                        case "Azure":
+                            sb.append("        <dependency>\n");
+                            sb.append("            <groupId>").append("org.apache.camel").append("</groupId>\n");
+                            sb.append("            <artifactId>").append("camel-azure-key-vault").append("</artifactId>\n");
+                            sb.append("        </dependency>\n");
+                            break;
+                    }
+                }
+            }
+        }
+
         context = context.replaceFirst("\\{\\{ \\.CamelDependencies }}", sb.toString());
 
         IOHelper.writeText(context, new FileOutputStream(pom, false));
@@ -248,4 +278,27 @@ class ExportCamelMain extends Export {
         safeCopy(is, new File(srcResourcesDir, "assembly/runner.xml"));
     }
 
+    @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;
+                    }
+                }
+            }
+        }
+    }
 }