You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/03/13 11:51:33 UTC

[camel] 01/02: CAMEL-16345: camel-main - Auto generate list of known components, dataformats, languages for ENV variable resolver.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 23e9c0678b0f066628b77ec10e49865415e6b96e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Mar 13 12:41:39 2021 +0100

    CAMEL-16345: camel-main - Auto generate list of known components, dataformats, languages for ENV variable resolver.
---
 .../src/main/java/org/apache/camel/main/BaseMainSupport.java       | 3 +++
 .../camel-main/src/main/java/org/apache/camel/main/MainHelper.java | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
index 025ca82..bb44dcb 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
@@ -417,6 +417,9 @@ public abstract class BaseMainSupport extends BaseService {
                 }
             });
         }
+
+        // we are now done with the main helper during bootstrap
+        camelContext.adapt(ExtendedCamelContext.class).addBootstrap(MainHelper::bootstrapDone);
     }
 
     protected void configureStartupRecorder(CamelContext camelContext) {
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java b/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
index 00474b8..62c3cda 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainHelper.java
@@ -481,6 +481,13 @@ public final class MainHelper {
     private MainHelper() {
     }
 
+    public static void bootstrapDone() {
+        // after bootstrap then these maps are no longer needed
+        COMPONENT_ENV_NAMES.clear();
+        DATAFORMAT_ENV_NAMES.clear();
+        LANGUAGE_ENV_NAMES.clear();
+    }
+
     public static String toEnvVar(String name) {
         return name.toUpperCase(Locale.US).replaceAll("[^\\w]", "-").replace('-', '_');
     }