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 53f0261af5a0d15af35c1a745d628b98624db1b9
Author: Andrea Cosentino <[email protected]>
AuthorDate: Tue May 9 10:23:20 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/ExportBaseCommand.java |  49 ++++++++++
 .../dsl/jbang/core/commands/ExportQuarkus.java     | 101 +++++++++++++--------
 2 files changed, 110 insertions(+), 40 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index e1aeedcf24b..a2054c9c956 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -733,4 +733,53 @@ abstract class ExportBaseCommand extends CamelCommand {
             }
         }
     }
+
+
+    protected void exportAwsSecretsRefreshProp(Properties properties) {
+        properties.setProperty("camel.vault.aws.accessKey", "<accessKey>");
+        properties.setProperty("camel.vault.aws.secretKey", "<secretKey>");
+        properties.setProperty("camel.vault.aws.region", "<region>");
+        properties.setProperty("camel.vault.aws.useDefaultCredentialProvider", 
"<useDefaultCredentialProvider>");
+        properties.setProperty("camel.vault.aws.refreshEnabled", "true");
+        properties.setProperty("camel.vault.aws.refreshPeriod", "30000");
+        properties.setProperty("camel.vault.aws.secrets", "<secrets>");
+        properties.setProperty("camel.main.context-reload-enabled", "true");
+    }
+
+    protected void exportGcpSecretsRefreshProp(Properties properties) {
+        properties.setProperty("camel.vault.gcp.serviceAccountKey", 
"<serviceAccountKey>");
+        properties.setProperty("camel.vault.gcp.projectId", "<projectId>");
+        properties.setProperty("camel.vault.gcp.useDefaultInstance", 
"<useDefaultInstance>");
+        properties.setProperty("camel.vault.gcp.refreshEnabled", "true");
+        properties.setProperty("camel.vault.aws.refreshPeriod", "30000");
+        properties.setProperty("camel.vault.gcp.secrets", "<secrets>");
+        properties.setProperty("camel.vault.gcp.subscriptionName", 
"<subscriptionName>");
+        properties.setProperty("camel.main.context-reload-enabled", "true");
+    }
+
+    protected void exportAzureSecretsRefreshProp(Properties properties) {
+        properties.setProperty("camel.vault.azure.tenantId", "<tenantId>");
+        properties.setProperty("camel.vault.azure.clientId", "<clientId>");
+        properties.setProperty("camel.vault.azure.clientSecret", 
"<clientSecret>");
+        properties.setProperty("camel.vault.azure.vaultName", "<vaultName>");
+        properties.setProperty("camel.vault.azure.refreshEnabled", "true");
+        properties.setProperty("camel.vault.azure.refreshPeriod", "30000");
+        properties.setProperty("camel.vault.azure.secrets", "<secrets>");
+        properties.setProperty("camel.vault.azure.eventhubConnectionString", 
"<eventhubConnectionString>");
+        properties.setProperty("camel.vault.azure.blobAccountName", 
"<blobAccountName>");
+        properties.setProperty("camel.vault.azure.blobContainerName", 
"<blobContainerName>");
+        properties.setProperty("camel.vault.azure.blobAccessKey", 
"<blobAccessKey>");
+        properties.setProperty("camel.main.context-reload-enabled", "true");
+    }
+
+    protected List<String> getSecretProviders() {
+        if (secretsRefreshProviders != null) {
+            List<String> providers = Pattern.compile("\\,")
+                    .splitAsStream(secretsRefreshProviders)
+                    .collect(Collectors.toList());
+            return providers;
+        } else {
+            return null;
+        }
+    }
 }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index 76e4e9bf070..744acf06ab5 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -188,9 +188,7 @@ class ExportQuarkus extends Export {
         }
         if (secretsRefresh) {
             if (secretsRefreshProviders != null) {
-                List<String> providers = Pattern.compile("\\,")
-                        .splitAsStream(secretsRefreshProviders)
-                        .collect(Collectors.toList());
+                List<String> providers = getSecretProviders();
 
                 for (String provider : providers
                 ) {
@@ -210,43 +208,6 @@ class ExportQuarkus extends Export {
         }
     }
 
-    private void exportAwsSecretsRefreshProp(Properties properties) {
-        properties.setProperty("camel.vault.aws.accessKey", "<accessKey>");
-        properties.setProperty("camel.vault.aws.secretKey", "<secretKey>");
-        properties.setProperty("camel.vault.aws.region", "<region>");
-        properties.setProperty("camel.vault.aws.useDefaultCredentialProvider", 
"<useDefaultCredentialProvider>");
-        properties.setProperty("camel.vault.aws.refreshEnabled", "true");
-        properties.setProperty("camel.vault.aws.refreshPeriod", "30000");
-        properties.setProperty("camel.vault.aws.secrets", "<secrets>");
-        properties.setProperty("camel.main.context-reload-enabled", "true");
-    }
-
-    private void exportGcpSecretsRefreshProp(Properties properties) {
-        properties.setProperty("camel.vault.gcp.serviceAccountKey", 
"<serviceAccountKey>");
-        properties.setProperty("camel.vault.gcp.projectId", "<projectId>");
-        properties.setProperty("camel.vault.gcp.useDefaultInstance", 
"<useDefaultInstance>");
-        properties.setProperty("camel.vault.gcp.refreshEnabled", "true");
-        properties.setProperty("camel.vault.aws.refreshPeriod", "30000");
-        properties.setProperty("camel.vault.gcp.secrets", "<secrets>");
-        properties.setProperty("camel.vault.gcp.subscriptionName", 
"<subscriptionName>");
-        properties.setProperty("camel.main.context-reload-enabled", "true");
-    }
-
-    private void exportAzureSecretsRefreshProp(Properties properties) {
-        properties.setProperty("camel.vault.azure.tenantId", "<tenantId>");
-        properties.setProperty("camel.vault.azure.clientId", "<clientId>");
-        properties.setProperty("camel.vault.azure.clientSecret", 
"<clientSecret>");
-        properties.setProperty("camel.vault.azure.vaultName", "<vaultName>");
-        properties.setProperty("camel.vault.azure.refreshEnabled", "true");
-        properties.setProperty("camel.vault.azure.refreshPeriod", "30000");
-        properties.setProperty("camel.vault.azure.secrets", "<secrets>");
-        properties.setProperty("camel.vault.azure.eventhubConnectionString", 
"<eventhubConnectionString>");
-        properties.setProperty("camel.vault.azure.blobAccountName", 
"<blobAccountName>");
-        properties.setProperty("camel.vault.azure.blobContainerName", 
"<blobContainerName>");
-        properties.setProperty("camel.vault.azure.blobAccessKey", 
"<blobAccessKey>");
-        properties.setProperty("camel.main.context-reload-enabled", "true");
-    }
-
     private static String removeScheme(String s) {
         if (s.contains(":")) {
             return StringHelper.after(s, ":");
@@ -345,6 +306,38 @@ class ExportQuarkus 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.quarkus");
+                            
awsGav.setArtifactId("camel-quarkus-aws-secrets-manager");
+                            awsGav.setVersion(null);
+                            gavs.add(awsGav);
+                            break;
+                        case "GCP":
+                            MavenGav gcpGav = new MavenGav();
+                            gcpGav.setGroupId("org.apache.camel.quarkus");
+                            
gcpGav.setArtifactId("camel-quarkus-google-secret-manager");
+                            gcpGav.setVersion(null);
+                            gavs.add(gcpGav);
+                            break;
+                        case "Azure":
+                            MavenGav azureGav = new MavenGav();
+                            azureGav.setGroupId("org.apache.camel.quarkus");
+                            
azureGav.setArtifactId("camel-quarkus-azure-key-vault");
+                            azureGav.setVersion(null);
+                            gavs.add(azureGav);
+                            break;
+                    }
+                }
+            }
+        }
+
         // sort artifacts
         gavs.sort(mavenGavComparator());
 
@@ -478,6 +471,34 @@ class ExportQuarkus 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.quarkus").append("</groupId>\n");
+                            sb.append("            
<artifactId>").append("camel-quarkus-aws-secrets-manager").append("</artifactId>\n");
+                            sb.append("        </dependency>\n");
+                            break;
+                        case "GCP":
+                            sb.append("        <dependency>\n");
+                            sb.append("            
<groupId>").append("org.apache.camel.quarkus").append("</groupId>\n");
+                            sb.append("            
<artifactId>").append("camel-quarkus-google-secret-manager").append("</artifactId>\n");
+                            sb.append("        </dependency>\n");
+                            break;
+                        case "Azure":
+                            sb.append("        <dependency>\n");
+                            sb.append("            
<groupId>").append("org.apache.camel.quarkus").append("</groupId>\n");
+                            sb.append("            
<artifactId>").append("camel-quarkus-azure-key-vault").append("</artifactId>\n");
+                            sb.append("        </dependency>\n");
+                            break;
+                    }
+                }
+            }
+        }
         context = context.replaceFirst("\\{\\{ \\.CamelDependencies }}", 
sb.toString());
 
         IOHelper.writeText(context, new FileOutputStream(pom, false));

Reply via email to