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

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


The following commit(s) were added to refs/heads/camel-4.8.x by this push:
     new 77d658049b0 CAMEL-21321: camel-main - Allow configuring long ENV names 
using more human readable
77d658049b0 is described below

commit 77d658049b0979dbcbec07a831d102efb6cc2e95
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat Oct 5 10:16:01 2024 +0200

    CAMEL-21321: camel-main - Allow configuring long ENV names using more human 
readable
---
 .../properties/PropertiesComponentConfigurer.java  |  34 ++++-
 .../component/properties/PropertiesComponent.java  |   2 +-
 .../camel/impl/console/EventConsoleConfigurer.java |  20 ++-
 .../GarbageCollectorDevConsoleConfigurer.java      |  19 ++-
 .../console/JavaSecurityDevConsoleConfigurer.java  |  19 ++-
 .../impl/console/JvmDevConsoleConfigurer.java      |  20 ++-
 .../impl/console/MemoryDevConsoleConfigurer.java   |  19 ++-
 .../impl/console/ThreadDevConsoleConfigurer.java   |  19 ++-
 .../impl/console/TraceDevConsoleConfigurer.java    |  20 ++-
 .../apache/camel/impl/console/EventConsole.java    |   2 +-
 .../impl/console/GarbageCollectorDevConsole.java   |   2 +-
 .../camel/impl/console/JavaSecurityDevConsole.java |   2 +-
 .../apache/camel/impl/console/JvmDevConsole.java   |   2 +-
 .../camel/impl/console/MemoryDevConsole.java       |   2 +-
 .../camel/impl/console/ThreadDevConsole.java       |   2 +-
 .../apache/camel/impl/console/TraceDevConsole.java |   2 +-
 .../AwsVaultConfigurationPropertiesConfigurer.java |  34 ++++-
 ...zureVaultConfigurationPropertiesConfigurer.java |  35 +++++-
 .../DebuggerConfigurationPropertiesConfigurer.java |  33 ++++-
 .../GcpVaultConfigurationPropertiesConfigurer.java |  30 ++++-
 ...corpVaultConfigurationPropertiesConfigurer.java |  27 +++-
 .../HealthConfigurationPropertiesConfigurer.java   |  26 +++-
 ...ttpServerConfigurationPropertiesConfigurer.java |  41 +++++-
 ...etesVaultConfigurationPropertiesConfigurer.java |  25 +++-
 .../main/LraConfigurationPropertiesConfigurer.java |  23 +++-
 .../MainConfigurationPropertiesConfigurer.java     | 140 ++++++++++++++++++++-
 .../MetricsConfigurationPropertiesConfigurer.java  |  28 ++++-
 .../OtelConfigurationPropertiesConfigurer.java     |  23 +++-
 .../RestConfigurationPropertiesConfigurer.java     |  47 ++++++-
 ...ontrollerConfigurationPropertiesConfigurer.java |  30 ++++-
 .../main/SSLConfigurationPropertiesConfigurer.java |  37 +++++-
 ...hreadPoolConfigurationPropertiesConfigurer.java |  26 +++-
 ...olProfileConfigurationPropertiesConfigurer.java |  26 +++-
 .../TracerConfigurationPropertiesConfigurer.java   |  32 ++++-
 .../main/AwsVaultConfigurationProperties.java      |   2 +-
 .../main/AzureVaultConfigurationProperties.java    |   2 +-
 .../main/DebuggerConfigurationProperties.java      |   2 +-
 .../main/GcpVaultConfigurationProperties.java      |   2 +-
 .../HashicorpVaultConfigurationProperties.java     |   2 +-
 .../camel/main/HealthConfigurationProperties.java  |   2 +-
 .../main/HttpServerConfigurationProperties.java    |   2 +-
 .../KubernetesVaultConfigurationProperties.java    |   2 +-
 .../camel/main/LraConfigurationProperties.java     |   2 +-
 .../camel/main/MainConfigurationProperties.java    |   2 +-
 .../java/org/apache/camel/main/MainHelper.java     |  27 ++++
 .../camel/main/MetricsConfigurationProperties.java |   2 +-
 .../camel/main/OtelConfigurationProperties.java    |   2 +-
 .../camel/main/RestConfigurationProperties.java    |   2 +-
 .../RouteControllerConfigurationProperties.java    |   2 +-
 .../camel/main/SSLConfigurationProperties.java     |   2 +-
 .../main/ThreadPoolConfigurationProperties.java    |   2 +-
 .../ThreadPoolProfileConfigurationProperties.java  |   2 +-
 .../camel/main/TracerConfigurationProperties.java  |   2 +-
 .../java/org/apache/camel/util/StringHelper.java   |  14 +++
 .../org/apache/camel/util/StringHelperTest.java    |  33 +++++
 55 files changed, 907 insertions(+), 52 deletions(-)

diff --git 
a/core/camel-base/src/generated/java/org/apache/camel/component/properties/PropertiesComponentConfigurer.java
 
b/core/camel-base/src/generated/java/org/apache/camel/component/properties/PropertiesComponentConfigurer.java
index e5e87f12356..7af20e677ab 100644
--- 
a/core/camel-base/src/generated/java/org/apache/camel/component/properties/PropertiesComponentConfigurer.java
+++ 
b/core/camel-base/src/generated/java/org/apache/camel/component/properties/PropertiesComponentConfigurer.java
@@ -17,7 +17,30 @@ import 
org.apache.camel.component.properties.PropertiesComponent;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class PropertiesComponentConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class PropertiesComponentConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AutoDiscoverPropertiesSources", boolean.class);
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        map.put("DefaultFallbackEnabled", boolean.class);
+        map.put("Encoding", java.lang.String.class);
+        map.put("EnvironmentVariableMode", int.class);
+        map.put("IgnoreMissingLocation", boolean.class);
+        map.put("IgnoreMissingProperty", boolean.class);
+        map.put("InitialProperties", java.util.Properties.class);
+        map.put("LocalProperties", java.util.Properties.class);
+        map.put("Location", java.lang.String.class);
+        map.put("Locations", java.util.List.class);
+        map.put("NestedPlaceholder", boolean.class);
+        map.put("OverrideProperties", java.util.Properties.class);
+        map.put("PropertiesFunctionResolver", 
org.apache.camel.component.properties.PropertiesFunctionResolver.class);
+        map.put("PropertiesParser", 
org.apache.camel.component.properties.PropertiesParser.class);
+        map.put("SystemPropertiesMode", int.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(PropertiesComponentConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -56,6 +79,15 @@ public class PropertiesComponentConfigurer extends 
org.apache.camel.support.comp
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
 
b/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
index 0cfa3746e72..a1506adc9d2 100644
--- 
a/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
+++ 
b/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  */
 @ManagedResource(description = "Managed PropertiesComponent")
 @JdkService(org.apache.camel.spi.PropertiesComponent.FACTORY)
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class PropertiesComponent extends ServiceSupport
         implements org.apache.camel.spi.PropertiesComponent, StaticService, 
CamelContextAware {
 
diff --git 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/EventConsoleConfigurer.java
 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/EventConsoleConfigurer.java
index c5ce51584e4..29737e6b804 100644
--- 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/EventConsoleConfigurer.java
+++ 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/EventConsoleConfigurer.java
@@ -17,7 +17,16 @@ import org.apache.camel.impl.console.EventConsole;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class EventConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class EventConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        map.put("Capacity", int.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(EventConsoleConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -30,6 +39,15 @@ public class EventConsoleConfigurer extends 
org.apache.camel.support.component.P
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/GarbageCollectorDevConsoleConfigurer.java
 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/GarbageCollectorDevConsoleConfigurer.java
index 8da678447ce..b468167b51f 100644
--- 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/GarbageCollectorDevConsoleConfigurer.java
+++ 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/GarbageCollectorDevConsoleConfigurer.java
@@ -17,7 +17,15 @@ import 
org.apache.camel.impl.console.GarbageCollectorDevConsole;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class GarbageCollectorDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class GarbageCollectorDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(GarbageCollectorDevConsoleConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -29,6 +37,15 @@ public class GarbageCollectorDevConsoleConfigurer extends 
org.apache.camel.suppo
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/JavaSecurityDevConsoleConfigurer.java
 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/JavaSecurityDevConsoleConfigurer.java
index 5f8079b4efd..a4ae282a93b 100644
--- 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/JavaSecurityDevConsoleConfigurer.java
+++ 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/JavaSecurityDevConsoleConfigurer.java
@@ -17,7 +17,15 @@ import org.apache.camel.impl.console.JavaSecurityDevConsole;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class JavaSecurityDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class JavaSecurityDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(JavaSecurityDevConsoleConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -29,6 +37,15 @@ public class JavaSecurityDevConsoleConfigurer extends 
org.apache.camel.support.c
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/JvmDevConsoleConfigurer.java
 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/JvmDevConsoleConfigurer.java
index 7f021ae7dab..4bfc135370b 100644
--- 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/JvmDevConsoleConfigurer.java
+++ 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/JvmDevConsoleConfigurer.java
@@ -17,7 +17,16 @@ import org.apache.camel.impl.console.JvmDevConsole;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class JvmDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class JvmDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        map.put("ShowClasspath", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(JvmDevConsoleConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -31,6 +40,15 @@ public class JvmDevConsoleConfigurer extends 
org.apache.camel.support.component.
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/MemoryDevConsoleConfigurer.java
 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/MemoryDevConsoleConfigurer.java
index 0446b9842ab..8758c352177 100644
--- 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/MemoryDevConsoleConfigurer.java
+++ 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/MemoryDevConsoleConfigurer.java
@@ -17,7 +17,15 @@ import org.apache.camel.impl.console.MemoryDevConsole;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class MemoryDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class MemoryDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(MemoryDevConsoleConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -29,6 +37,15 @@ public class MemoryDevConsoleConfigurer extends 
org.apache.camel.support.compone
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/ThreadDevConsoleConfigurer.java
 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/ThreadDevConsoleConfigurer.java
index 0da735c23be..d6a2a472747 100644
--- 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/ThreadDevConsoleConfigurer.java
+++ 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/ThreadDevConsoleConfigurer.java
@@ -17,7 +17,15 @@ import org.apache.camel.impl.console.ThreadDevConsole;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class ThreadDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class ThreadDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(ThreadDevConsoleConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -29,6 +37,15 @@ public class ThreadDevConsoleConfigurer extends 
org.apache.camel.support.compone
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/TraceDevConsoleConfigurer.java
 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/TraceDevConsoleConfigurer.java
index b51af401730..d6bbea035f9 100644
--- 
a/core/camel-console/src/generated/java/org/apache/camel/impl/console/TraceDevConsoleConfigurer.java
+++ 
b/core/camel-console/src/generated/java/org/apache/camel/impl/console/TraceDevConsoleConfigurer.java
@@ -17,7 +17,16 @@ import org.apache.camel.impl.console.TraceDevConsole;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class TraceDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class TraceDevConsoleConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CamelContext", org.apache.camel.CamelContext.class);
+        map.put("Capacity", int.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(TraceDevConsoleConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -30,6 +39,15 @@ public class TraceDevConsoleConfigurer extends 
org.apache.camel.support.componen
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
index a12479dc095..f2ad01380af 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/EventConsole.java
@@ -32,7 +32,7 @@ import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole(name = "event", displayName = "Camel Events", description = "The 
most recent Camel events")
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class EventConsole extends AbstractDevConsole {
 
     @Metadata(defaultValue = "25",
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
index 3a4252f7239..4b727fe98fa 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/GarbageCollectorDevConsole.java
@@ -29,7 +29,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole(name = "gc", displayName = "Garbage Collector", description = 
"Displays Garbage Collector information")
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class GarbageCollectorDevConsole extends AbstractDevConsole {
 
     public GarbageCollectorDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
index 8feb6c7637b..68cc6b65d6e 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JavaSecurityDevConsole.java
@@ -28,7 +28,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole(name = "java-security", description = "Displays Java Security 
(JSSE) information")
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class JavaSecurityDevConsole extends AbstractDevConsole {
 
     public JavaSecurityDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
index a89fa7c7e5b..8d1e851afd4 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/JvmDevConsole.java
@@ -28,7 +28,7 @@ import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole(name = "jvm", displayName = "JVM", description = "Displays JVM 
information")
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class JvmDevConsole extends AbstractDevConsole {
 
     @Metadata(defaultValue = "true", description = "Show classpath 
information")
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
index f02708dfb80..141bbbccee1 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/MemoryDevConsole.java
@@ -28,7 +28,7 @@ import org.apache.camel.util.json.JsonObject;
 import static org.apache.camel.util.UnitUtils.printUnitFromBytesDot;
 
 @DevConsole(name = "memory", displayName = "JVM Memory", description = 
"Displays JVM memory information")
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class MemoryDevConsole extends AbstractDevConsole {
 
     public MemoryDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
index 042ecb53a02..414d0535fb1 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ThreadDevConsole.java
@@ -29,7 +29,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole(name = "thread", description = "Displays JVM Threads information")
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class ThreadDevConsole extends AbstractDevConsole {
 
     public ThreadDevConsole() {
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
index f34766bb255..a53c9ced4cb 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/TraceDevConsole.java
@@ -30,7 +30,7 @@ import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole(name = "trace", displayName = "Camel Tracing", description = 
"Trace routed messages")
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class TraceDevConsole extends AbstractDevConsole {
 
     @Metadata(defaultValue = "100",
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/AwsVaultConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/AwsVaultConfigurationPropertiesConfigurer.java
index 6c185838b30..5fe91949794 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/AwsVaultConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/AwsVaultConfigurationPropertiesConfigurer.java
@@ -17,7 +17,30 @@ import org.apache.camel.main.AwsVaultConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class AwsVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class AwsVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AccessKey", java.lang.String.class);
+        map.put("AwsVaultConfiguration", 
org.apache.camel.vault.AwsVaultConfiguration.class);
+        map.put("AzureVaultConfiguration", 
org.apache.camel.vault.AzureVaultConfiguration.class);
+        map.put("DefaultCredentialsProvider", boolean.class);
+        map.put("GcpVaultConfiguration", 
org.apache.camel.vault.GcpVaultConfiguration.class);
+        map.put("HashicorpVaultConfiguration", 
org.apache.camel.vault.HashicorpVaultConfiguration.class);
+        map.put("KubernetesVaultConfiguration", 
org.apache.camel.vault.KubernetesVaultConfiguration.class);
+        map.put("ProfileCredentialsProvider", boolean.class);
+        map.put("ProfileName", java.lang.String.class);
+        map.put("RefreshEnabled", boolean.class);
+        map.put("RefreshPeriod", long.class);
+        map.put("Region", java.lang.String.class);
+        map.put("SecretKey", java.lang.String.class);
+        map.put("Secrets", java.lang.String.class);
+        map.put("SqsQueueUrl", java.lang.String.class);
+        map.put("UseSqsNotification", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(AwsVaultConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -57,6 +80,15 @@ public class AwsVaultConfigurationPropertiesConfigurer 
extends org.apache.camel.
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/AzureVaultConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/AzureVaultConfigurationPropertiesConfigurer.java
index f0165b5d13b..2a1c27fffc6 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/AzureVaultConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/AzureVaultConfigurationPropertiesConfigurer.java
@@ -17,7 +17,31 @@ import 
org.apache.camel.main.AzureVaultConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class AzureVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class AzureVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AwsVaultConfiguration", 
org.apache.camel.vault.AwsVaultConfiguration.class);
+        map.put("AzureIdentityEnabled", boolean.class);
+        map.put("AzureVaultConfiguration", 
org.apache.camel.vault.AzureVaultConfiguration.class);
+        map.put("BlobAccessKey", java.lang.String.class);
+        map.put("BlobAccountName", java.lang.String.class);
+        map.put("BlobContainerName", java.lang.String.class);
+        map.put("ClientId", java.lang.String.class);
+        map.put("ClientSecret", java.lang.String.class);
+        map.put("EventhubConnectionString", java.lang.String.class);
+        map.put("GcpVaultConfiguration", 
org.apache.camel.vault.GcpVaultConfiguration.class);
+        map.put("HashicorpVaultConfiguration", 
org.apache.camel.vault.HashicorpVaultConfiguration.class);
+        map.put("KubernetesVaultConfiguration", 
org.apache.camel.vault.KubernetesVaultConfiguration.class);
+        map.put("RefreshEnabled", boolean.class);
+        map.put("RefreshPeriod", long.class);
+        map.put("Secrets", java.lang.String.class);
+        map.put("TenantId", java.lang.String.class);
+        map.put("VaultName", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(AzureVaultConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -60,6 +84,15 @@ public class AzureVaultConfigurationPropertiesConfigurer 
extends org.apache.came
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/DebuggerConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/DebuggerConfigurationPropertiesConfigurer.java
index 820b997b6c0..d44ca5c0453 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/DebuggerConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/DebuggerConfigurationPropertiesConfigurer.java
@@ -17,7 +17,29 @@ import org.apache.camel.main.DebuggerConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class DebuggerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class DebuggerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("BodyIncludeFiles", boolean.class);
+        map.put("BodyIncludeStreams", boolean.class);
+        map.put("BodyMaxChars", int.class);
+        map.put("Breakpoints", java.lang.String.class);
+        map.put("Enabled", boolean.class);
+        map.put("FallbackTimeout", long.class);
+        map.put("IncludeException", boolean.class);
+        map.put("IncludeExchangeProperties", boolean.class);
+        map.put("IncludeExchangeVariables", boolean.class);
+        map.put("JmxConnectorEnabled", boolean.class);
+        map.put("JmxConnectorPort", int.class);
+        map.put("LoggingLevel", org.apache.camel.LoggingLevel.class);
+        map.put("SingleStepIncludeStartEnd", boolean.class);
+        map.put("Standby", boolean.class);
+        map.put("WaitForAttach", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(DebuggerConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -54,6 +76,15 @@ public class DebuggerConfigurationPropertiesConfigurer 
extends org.apache.camel.
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/GcpVaultConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/GcpVaultConfigurationPropertiesConfigurer.java
index e63f1953e0e..5084f68d9c4 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/GcpVaultConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/GcpVaultConfigurationPropertiesConfigurer.java
@@ -17,7 +17,26 @@ import org.apache.camel.main.GcpVaultConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class GcpVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class GcpVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AwsVaultConfiguration", 
org.apache.camel.vault.AwsVaultConfiguration.class);
+        map.put("AzureVaultConfiguration", 
org.apache.camel.vault.AzureVaultConfiguration.class);
+        map.put("GcpVaultConfiguration", 
org.apache.camel.vault.GcpVaultConfiguration.class);
+        map.put("HashicorpVaultConfiguration", 
org.apache.camel.vault.HashicorpVaultConfiguration.class);
+        map.put("KubernetesVaultConfiguration", 
org.apache.camel.vault.KubernetesVaultConfiguration.class);
+        map.put("ProjectId", java.lang.String.class);
+        map.put("RefreshEnabled", boolean.class);
+        map.put("RefreshPeriod", long.class);
+        map.put("Secrets", java.lang.String.class);
+        map.put("ServiceAccountKey", java.lang.String.class);
+        map.put("SubscriptionName", java.lang.String.class);
+        map.put("UseDefaultInstance", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(GcpVaultConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -50,6 +69,15 @@ public class GcpVaultConfigurationPropertiesConfigurer 
extends org.apache.camel.
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/HashicorpVaultConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/HashicorpVaultConfigurationPropertiesConfigurer.java
index 18ceb9a6fa6..a26ad5bef73 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/HashicorpVaultConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/HashicorpVaultConfigurationPropertiesConfigurer.java
@@ -17,7 +17,23 @@ import 
org.apache.camel.main.HashicorpVaultConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class HashicorpVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class HashicorpVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AwsVaultConfiguration", 
org.apache.camel.vault.AwsVaultConfiguration.class);
+        map.put("AzureVaultConfiguration", 
org.apache.camel.vault.AzureVaultConfiguration.class);
+        map.put("GcpVaultConfiguration", 
org.apache.camel.vault.GcpVaultConfiguration.class);
+        map.put("HashicorpVaultConfiguration", 
org.apache.camel.vault.HashicorpVaultConfiguration.class);
+        map.put("Host", java.lang.String.class);
+        map.put("KubernetesVaultConfiguration", 
org.apache.camel.vault.KubernetesVaultConfiguration.class);
+        map.put("Port", java.lang.String.class);
+        map.put("Scheme", java.lang.String.class);
+        map.put("Token", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(HashicorpVaultConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -41,6 +57,15 @@ public class HashicorpVaultConfigurationPropertiesConfigurer 
extends org.apache.
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/HealthConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/HealthConfigurationPropertiesConfigurer.java
index df700870425..de4623f8058 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/HealthConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/HealthConfigurationPropertiesConfigurer.java
@@ -17,7 +17,22 @@ import org.apache.camel.main.HealthConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class HealthConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class HealthConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("ConsumersEnabled", java.lang.Boolean.class);
+        map.put("Enabled", java.lang.Boolean.class);
+        map.put("ExcludePattern", java.lang.String.class);
+        map.put("ExposureLevel", java.lang.String.class);
+        map.put("InitialState", java.lang.String.class);
+        map.put("ProducersEnabled", java.lang.Boolean.class);
+        map.put("RegistryEnabled", java.lang.Boolean.class);
+        map.put("RoutesEnabled", java.lang.Boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(HealthConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -42,6 +57,15 @@ public class HealthConfigurationPropertiesConfigurer extends 
org.apache.camel.su
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/HttpServerConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/HttpServerConfigurationPropertiesConfigurer.java
index d7cc0cc53cd..aad80c15a39 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/HttpServerConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/HttpServerConfigurationPropertiesConfigurer.java
@@ -17,7 +17,37 @@ import 
org.apache.camel.main.HttpServerConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class HttpServerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class HttpServerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AuthenticationEnabled", boolean.class);
+        map.put("AuthenticationPath", java.lang.String.class);
+        map.put("BasicPropertiesFile", java.lang.String.class);
+        map.put("DevConsoleEnabled", boolean.class);
+        map.put("DownloadEnabled", boolean.class);
+        map.put("Enabled", boolean.class);
+        map.put("HealthCheckEnabled", boolean.class);
+        map.put("Host", java.lang.String.class);
+        map.put("InfoEnabled", boolean.class);
+        map.put("JolokiaEnabled", boolean.class);
+        map.put("JwtKeystorePassword", java.lang.String.class);
+        map.put("JwtKeystorePath", java.lang.String.class);
+        map.put("JwtKeystoreType", java.lang.String.class);
+        map.put("MaxBodySize", java.lang.Long.class);
+        map.put("MetricsEnabled", boolean.class);
+        map.put("Path", java.lang.String.class);
+        map.put("Port", int.class);
+        map.put("SendEnabled", boolean.class);
+        map.put("StaticContextPath", java.lang.String.class);
+        map.put("StaticEnabled", boolean.class);
+        map.put("UploadEnabled", boolean.class);
+        map.put("UploadSourceDir", java.lang.String.class);
+        map.put("UseGlobalSslContextParameters", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(HttpServerConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -69,6 +99,15 @@ public class HttpServerConfigurationPropertiesConfigurer 
extends org.apache.came
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/KubernetesVaultConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/KubernetesVaultConfigurationPropertiesConfigurer.java
index 7037581608c..7c22dba6433 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/KubernetesVaultConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/KubernetesVaultConfigurationPropertiesConfigurer.java
@@ -17,7 +17,21 @@ import 
org.apache.camel.main.KubernetesVaultConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class KubernetesVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class KubernetesVaultConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AwsVaultConfiguration", 
org.apache.camel.vault.AwsVaultConfiguration.class);
+        map.put("AzureVaultConfiguration", 
org.apache.camel.vault.AzureVaultConfiguration.class);
+        map.put("GcpVaultConfiguration", 
org.apache.camel.vault.GcpVaultConfiguration.class);
+        map.put("HashicorpVaultConfiguration", 
org.apache.camel.vault.HashicorpVaultConfiguration.class);
+        map.put("KubernetesVaultConfiguration", 
org.apache.camel.vault.KubernetesVaultConfiguration.class);
+        map.put("RefreshEnabled", boolean.class);
+        map.put("Secrets", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(KubernetesVaultConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -40,6 +54,15 @@ public class 
KubernetesVaultConfigurationPropertiesConfigurer extends org.apache
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/LraConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/LraConfigurationPropertiesConfigurer.java
index 64c31b6f4f7..538e3e973e9 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/LraConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/LraConfigurationPropertiesConfigurer.java
@@ -17,7 +17,19 @@ import org.apache.camel.main.LraConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class LraConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class LraConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CoordinatorContextPath", java.lang.String.class);
+        map.put("CoordinatorUrl", java.lang.String.class);
+        map.put("Enabled", boolean.class);
+        map.put("LocalParticipantContextPath", java.lang.String.class);
+        map.put("LocalParticipantUrl", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(LraConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -36,6 +48,15 @@ public class LraConfigurationPropertiesConfigurer extends 
org.apache.camel.suppo
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
index 9e1a410fd6b..6e019161bf2 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/MainConfigurationPropertiesConfigurer.java
@@ -17,7 +17,136 @@ import org.apache.camel.main.MainConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class MainConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class MainConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AllowUseOriginalMessage", boolean.class);
+        map.put("AutoConfigurationEnabled", boolean.class);
+        map.put("AutoConfigurationEnvironmentVariablesEnabled", boolean.class);
+        map.put("AutoConfigurationFailFast", boolean.class);
+        map.put("AutoConfigurationLogSummary", boolean.class);
+        map.put("AutoConfigurationSystemPropertiesEnabled", boolean.class);
+        map.put("AutoStartup", boolean.class);
+        map.put("AutowiredEnabled", boolean.class);
+        map.put("BasePackageScan", java.lang.String.class);
+        map.put("BasePackageScanEnabled", boolean.class);
+        map.put("BeanIntrospectionExtendedStatistics", boolean.class);
+        map.put("BeanIntrospectionLoggingLevel", 
org.apache.camel.LoggingLevel.class);
+        map.put("BeanPostProcessorEnabled", boolean.class);
+        map.put("CamelEventsTimestampEnabled", boolean.class);
+        map.put("CaseInsensitiveHeaders", boolean.class);
+        map.put("CloudPropertiesLocation", java.lang.String.class);
+        map.put("CompileWorkDir", java.lang.String.class);
+        map.put("ConfigurationClasses", java.lang.String.class);
+        map.put("Configurations", java.util.List.class);
+        map.put("ConsumerTemplateCacheSize", int.class);
+        map.put("ContextReloadEnabled", boolean.class);
+        map.put("Description", java.lang.String.class);
+        map.put("DevConsoleEnabled", boolean.class);
+        map.put("DumpRoutes", java.lang.String.class);
+        map.put("DumpRoutesGeneratedIds", boolean.class);
+        map.put("DumpRoutesInclude", java.lang.String.class);
+        map.put("DumpRoutesLog", boolean.class);
+        map.put("DumpRoutesOutput", java.lang.String.class);
+        map.put("DumpRoutesResolvePlaceholders", boolean.class);
+        map.put("DumpRoutesUriAsParameters", boolean.class);
+        map.put("DurationHitExitCode", int.class);
+        map.put("DurationMaxAction", java.lang.String.class);
+        map.put("DurationMaxIdleSeconds", int.class);
+        map.put("DurationMaxMessages", int.class);
+        map.put("DurationMaxSeconds", int.class);
+        map.put("EndpointBridgeErrorHandler", boolean.class);
+        map.put("EndpointLazyStartProducer", boolean.class);
+        map.put("EndpointRuntimeStatisticsEnabled", boolean.class);
+        map.put("ExchangeFactory", java.lang.String.class);
+        map.put("ExchangeFactoryCapacity", int.class);
+        map.put("ExchangeFactoryStatisticsEnabled", boolean.class);
+        map.put("ExtraShutdownTimeout", int.class);
+        map.put("FileConfigurations", java.lang.String.class);
+        map.put("GlobalOptions", java.util.Map.class);
+        map.put("InflightRepositoryBrowseEnabled", boolean.class);
+        map.put("JavaRoutesExcludePattern", java.lang.String.class);
+        map.put("JavaRoutesIncludePattern", java.lang.String.class);
+        map.put("JmxEnabled", boolean.class);
+        map.put("JmxManagementMBeansLevel", 
org.apache.camel.ManagementMBeansLevel.class);
+        map.put("JmxManagementNamePattern", java.lang.String.class);
+        map.put("JmxManagementRegisterRoutesCreateByKamelet", boolean.class);
+        map.put("JmxManagementRegisterRoutesCreateByTemplate", boolean.class);
+        map.put("JmxManagementStatisticsLevel", 
org.apache.camel.ManagementStatisticsLevel.class);
+        map.put("JmxUpdateRouteEnabled", boolean.class);
+        map.put("Lightweight", boolean.class);
+        map.put("LoadHealthChecks", boolean.class);
+        map.put("LoadStatisticsEnabled", boolean.class);
+        map.put("LoadTypeConverters", boolean.class);
+        map.put("LogDebugMaxChars", int.class);
+        map.put("LogExhaustedMessageBody", boolean.class);
+        map.put("LogLanguage", java.lang.String.class);
+        map.put("LogMask", boolean.class);
+        map.put("LogName", java.lang.String.class);
+        map.put("MainListenerClasses", java.lang.String.class);
+        map.put("MainListeners", java.util.List.class);
+        map.put("MdcLoggingKeysPattern", java.lang.String.class);
+        map.put("MessageHistory", boolean.class);
+        map.put("Modeline", boolean.class);
+        map.put("Name", java.lang.String.class);
+        map.put("ProducerTemplateCacheSize", int.class);
+        map.put("Profile", java.lang.String.class);
+        map.put("RouteFilterExcludePattern", java.lang.String.class);
+        map.put("RouteFilterIncludePattern", java.lang.String.class);
+        map.put("RoutesBuilderClasses", java.lang.String.class);
+        map.put("RoutesBuilders", java.util.List.class);
+        map.put("RoutesCollectorEnabled", boolean.class);
+        map.put("RoutesCollectorIgnoreLoadingError", boolean.class);
+        map.put("RoutesExcludePattern", java.lang.String.class);
+        map.put("RoutesIncludePattern", java.lang.String.class);
+        map.put("RoutesReloadDirectory", java.lang.String.class);
+        map.put("RoutesReloadDirectoryRecursive", boolean.class);
+        map.put("RoutesReloadEnabled", boolean.class);
+        map.put("RoutesReloadPattern", java.lang.String.class);
+        map.put("RoutesReloadRemoveAllRoutes", boolean.class);
+        map.put("RoutesReloadRestartDuration", boolean.class);
+        map.put("ShutdownLogInflightExchangesOnTimeout", boolean.class);
+        map.put("ShutdownNowOnTimeout", boolean.class);
+        map.put("ShutdownRoutesInReverseOrder", boolean.class);
+        map.put("ShutdownSuppressLoggingOnTimeout", boolean.class);
+        map.put("ShutdownTimeout", int.class);
+        map.put("SourceLocationEnabled", boolean.class);
+        map.put("StartupRecorder", java.lang.String.class);
+        map.put("StartupRecorderDir", java.lang.String.class);
+        map.put("StartupRecorderDuration", long.class);
+        map.put("StartupRecorderMaxDepth", int.class);
+        map.put("StartupRecorderProfile", java.lang.String.class);
+        map.put("StartupRecorderRecording", boolean.class);
+        map.put("StartupSummaryLevel", 
org.apache.camel.StartupSummaryLevel.class);
+        map.put("StreamCachingAllowClasses", java.lang.String.class);
+        map.put("StreamCachingAnySpoolRules", boolean.class);
+        map.put("StreamCachingBufferSize", int.class);
+        map.put("StreamCachingDenyClasses", java.lang.String.class);
+        map.put("StreamCachingEnabled", boolean.class);
+        map.put("StreamCachingRemoveSpoolDirectoryWhenStopping", 
boolean.class);
+        map.put("StreamCachingSpoolCipher", java.lang.String.class);
+        map.put("StreamCachingSpoolDirectory", java.lang.String.class);
+        map.put("StreamCachingSpoolEnabled", boolean.class);
+        map.put("StreamCachingSpoolThreshold", long.class);
+        map.put("StreamCachingSpoolUsedHeapMemoryLimit", 
java.lang.String.class);
+        map.put("StreamCachingSpoolUsedHeapMemoryThreshold", int.class);
+        map.put("StreamCachingStatisticsEnabled", boolean.class);
+        map.put("ThreadNamePattern", java.lang.String.class);
+        map.put("Tracing", boolean.class);
+        map.put("TracingLoggingFormat", java.lang.String.class);
+        map.put("TracingPattern", java.lang.String.class);
+        map.put("TracingStandby", boolean.class);
+        map.put("TracingTemplates", boolean.class);
+        map.put("TypeConverterStatisticsEnabled", boolean.class);
+        map.put("UseBreadcrumb", boolean.class);
+        map.put("UseDataType", boolean.class);
+        map.put("UseMdcLogging", boolean.class);
+        map.put("UuidGenerator", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(MainConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -262,6 +391,15 @@ public class MainConfigurationPropertiesConfigurer extends 
org.apache.camel.supp
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
index a17ae8993be..96d224cc6fc 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/MetricsConfigurationPropertiesConfigurer.java
@@ -17,7 +17,24 @@ import org.apache.camel.main.MetricsConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class MetricsConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class MetricsConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Binders", java.lang.String.class);
+        map.put("ClearOnReload", boolean.class);
+        map.put("EnableExchangeEventNotifier", boolean.class);
+        map.put("EnableMessageHistory", boolean.class);
+        map.put("EnableRouteEventNotifier", boolean.class);
+        map.put("EnableRoutePolicy", boolean.class);
+        map.put("Enabled", boolean.class);
+        map.put("NamingStrategy", java.lang.String.class);
+        map.put("RoutePolicyLevel", java.lang.String.class);
+        map.put("TextFormatVersion", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(MetricsConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -45,6 +62,15 @@ public class MetricsConfigurationPropertiesConfigurer 
extends org.apache.camel.s
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/OtelConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/OtelConfigurationPropertiesConfigurer.java
index 0c19a619add..abd47a797a9 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/OtelConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/OtelConfigurationPropertiesConfigurer.java
@@ -17,7 +17,19 @@ import org.apache.camel.main.OtelConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class OtelConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class OtelConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Enabled", boolean.class);
+        map.put("Encoding", boolean.class);
+        map.put("ExcludePatterns", java.lang.String.class);
+        map.put("InstrumentationName", java.lang.String.class);
+        map.put("TraceProcessors", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(OtelConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -35,6 +47,15 @@ public class OtelConfigurationPropertiesConfigurer extends 
org.apache.camel.supp
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java
index b11be207380..52416a8aeb8 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/RestConfigurationPropertiesConfigurer.java
@@ -17,7 +17,43 @@ import org.apache.camel.main.RestConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class RestConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class RestConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("ApiComponent", java.lang.String.class);
+        map.put("ApiContextPath", java.lang.String.class);
+        map.put("ApiContextRouteId", java.lang.String.class);
+        map.put("ApiHost", java.lang.String.class);
+        map.put("ApiProperties", java.util.Map.class);
+        map.put("ApiVendorExtension", boolean.class);
+        map.put("BindingMode", java.lang.String.class);
+        map.put("BindingPackageScan", java.lang.String.class);
+        map.put("ClientRequestValidation", boolean.class);
+        map.put("Component", java.lang.String.class);
+        map.put("ComponentProperties", java.util.Map.class);
+        map.put("ConsumerProperties", java.util.Map.class);
+        map.put("ContextPath", java.lang.String.class);
+        map.put("CorsHeaders", java.util.Map.class);
+        map.put("DataFormatProperties", java.util.Map.class);
+        map.put("EnableCORS", boolean.class);
+        map.put("EnableNoContentResponse", boolean.class);
+        map.put("EndpointProperties", java.util.Map.class);
+        map.put("Host", java.lang.String.class);
+        map.put("HostNameResolver", java.lang.String.class);
+        map.put("InlineRoutes", boolean.class);
+        map.put("JsonDataFormat", java.lang.String.class);
+        map.put("Port", int.class);
+        map.put("ProducerApiDoc", java.lang.String.class);
+        map.put("ProducerComponent", java.lang.String.class);
+        map.put("Scheme", java.lang.String.class);
+        map.put("SkipBindingOnErrorCode", boolean.class);
+        map.put("UseXForwardHeaders", boolean.class);
+        map.put("XmlDataFormat", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(RestConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -81,6 +117,15 @@ public class RestConfigurationPropertiesConfigurer extends 
org.apache.camel.supp
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/RouteControllerConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/RouteControllerConfigurationPropertiesConfigurer.java
index 75da765d03e..fd504981e20 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/RouteControllerConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/RouteControllerConfigurationPropertiesConfigurer.java
@@ -17,7 +17,26 @@ import 
org.apache.camel.main.RouteControllerConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class RouteControllerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class RouteControllerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("BackOffDelay", long.class);
+        map.put("BackOffMaxAttempts", long.class);
+        map.put("BackOffMaxDelay", long.class);
+        map.put("BackOffMaxElapsedTime", long.class);
+        map.put("BackOffMultiplier", double.class);
+        map.put("Enabled", boolean.class);
+        map.put("ExcludeRoutes", java.lang.String.class);
+        map.put("IncludeRoutes", java.lang.String.class);
+        map.put("InitialDelay", long.class);
+        map.put("ThreadPoolSize", int.class);
+        map.put("UnhealthyOnExhausted", boolean.class);
+        map.put("UnhealthyOnRestarting", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(RouteControllerConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -50,6 +69,15 @@ public class 
RouteControllerConfigurationPropertiesConfigurer extends org.apache
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/SSLConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/SSLConfigurationPropertiesConfigurer.java
index 2d7b065b25e..b2ea32ad8df 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/SSLConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/SSLConfigurationPropertiesConfigurer.java
@@ -17,7 +17,33 @@ import org.apache.camel.main.SSLConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class SSLConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class SSLConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("CertAlias", java.lang.String.class);
+        map.put("CipherSuites", java.lang.String.class);
+        map.put("CipherSuitesExclude", java.lang.String.class);
+        map.put("CipherSuitesInclude", java.lang.String.class);
+        map.put("ClientAuthentication", java.lang.String.class);
+        map.put("Enabled", boolean.class);
+        map.put("KeyManagerAlgorithm", java.lang.String.class);
+        map.put("KeyManagerProvider", java.lang.String.class);
+        map.put("KeyStore", java.lang.String.class);
+        map.put("KeyStoreProvider", java.lang.String.class);
+        map.put("KeyStoreType", java.lang.String.class);
+        map.put("KeystorePassword", java.lang.String.class);
+        map.put("Provider", java.lang.String.class);
+        map.put("SecureRandomAlgorithm", java.lang.String.class);
+        map.put("SecureRandomProvider", java.lang.String.class);
+        map.put("SecureSocketProtocol", java.lang.String.class);
+        map.put("SessionTimeout", int.class);
+        map.put("TrustStore", java.lang.String.class);
+        map.put("TrustStorePassword", java.lang.String.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(SSLConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -63,6 +89,15 @@ public class SSLConfigurationPropertiesConfigurer extends 
org.apache.camel.suppo
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolConfigurationPropertiesConfigurer.java
index 4c6145f8baa..813e5e920cc 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolConfigurationPropertiesConfigurer.java
@@ -17,7 +17,22 @@ import 
org.apache.camel.main.ThreadPoolConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class ThreadPoolConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class ThreadPoolConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AllowCoreThreadTimeOut", java.lang.Boolean.class);
+        map.put("Config", java.util.Map.class);
+        map.put("KeepAliveTime", java.lang.Long.class);
+        map.put("MaxPoolSize", java.lang.Integer.class);
+        map.put("MaxQueueSize", java.lang.Integer.class);
+        map.put("PoolSize", java.lang.Integer.class);
+        map.put("RejectedPolicy", 
org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy.class);
+        map.put("TimeUnit", java.util.concurrent.TimeUnit.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(ThreadPoolConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -42,6 +57,15 @@ public class ThreadPoolConfigurationPropertiesConfigurer 
extends org.apache.came
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolProfileConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolProfileConfigurationPropertiesConfigurer.java
index 4d96c13e033..f9d52a69c60 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolProfileConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/ThreadPoolProfileConfigurationPropertiesConfigurer.java
@@ -17,7 +17,22 @@ import 
org.apache.camel.main.ThreadPoolProfileConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class ThreadPoolProfileConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class ThreadPoolProfileConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AllowCoreThreadTimeOut", java.lang.Boolean.class);
+        map.put("Id", java.lang.String.class);
+        map.put("KeepAliveTime", java.lang.Long.class);
+        map.put("MaxPoolSize", java.lang.Integer.class);
+        map.put("MaxQueueSize", java.lang.Integer.class);
+        map.put("PoolSize", java.lang.Integer.class);
+        map.put("RejectedPolicy", 
org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy.class);
+        map.put("TimeUnit", java.util.concurrent.TimeUnit.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(ThreadPoolProfileConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -42,6 +57,15 @@ public class 
ThreadPoolProfileConfigurationPropertiesConfigurer extends org.apac
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/generated/java/org/apache/camel/main/TracerConfigurationPropertiesConfigurer.java
 
b/core/camel-main/src/generated/java/org/apache/camel/main/TracerConfigurationPropertiesConfigurer.java
index c513918f7ae..88d6c24959f 100644
--- 
a/core/camel-main/src/generated/java/org/apache/camel/main/TracerConfigurationPropertiesConfigurer.java
+++ 
b/core/camel-main/src/generated/java/org/apache/camel/main/TracerConfigurationPropertiesConfigurer.java
@@ -17,7 +17,28 @@ import org.apache.camel.main.TracerConfigurationProperties;
  */
 @Generated("org.apache.camel.maven.packaging.GenerateConfigurerMojo")
 @SuppressWarnings("unchecked")
-public class TracerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class TracerConfigurationPropertiesConfigurer extends 
org.apache.camel.support.component.PropertyConfigurerSupport implements 
GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("BacklogSize", int.class);
+        map.put("BodyIncludeFiles", boolean.class);
+        map.put("BodyIncludeStreams", boolean.class);
+        map.put("BodyMaxChars", int.class);
+        map.put("Enabled", boolean.class);
+        map.put("IncludeException", boolean.class);
+        map.put("IncludeExchangeProperties", boolean.class);
+        map.put("IncludeExchangeVariables", boolean.class);
+        map.put("RemoveOnDump", boolean.class);
+        map.put("Standby", boolean.class);
+        map.put("TraceFilter", java.lang.String.class);
+        map.put("TracePattern", java.lang.String.class);
+        map.put("TraceRests", boolean.class);
+        map.put("TraceTemplates", boolean.class);
+        ALL_OPTIONS = map;
+        
ConfigurerStrategy.addBootstrapConfigurerClearer(TracerConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
+    }
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
@@ -53,6 +74,15 @@ public class TracerConfigurationPropertiesConfigurer extends 
org.apache.camel.su
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    public static void clearBootstrapConfigurers() {
+        ALL_OPTIONS.clear();
+    }
+
     @Override
     public Class<?> getOptionType(String name, boolean ignoreCase) {
         switch (ignoreCase ? name.toLowerCase() : name) {
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java
index 6684163502a..0ef8f299f14 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/AwsVaultConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.vault.AwsVaultConfiguration;
 /**
  * Configuration for access to AWS Secret.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class AwsVaultConfigurationProperties extends AwsVaultConfiguration 
implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/AzureVaultConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/AzureVaultConfigurationProperties.java
index 4a15b5168b2..d0d1723edb9 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/AzureVaultConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/AzureVaultConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.vault.AzureVaultConfiguration;
 /**
  * Configuration for access to Azure Key Vault Secret.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class AzureVaultConfigurationProperties extends AzureVaultConfiguration 
implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/DebuggerConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/DebuggerConfigurationProperties.java
index 1655085b0e9..98632124d6b 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/DebuggerConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/DebuggerConfigurationProperties.java
@@ -24,7 +24,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Debugger configuration.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class DebuggerConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/GcpVaultConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/GcpVaultConfigurationProperties.java
index 5091de6ed88..708c4ff34aa 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/GcpVaultConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/GcpVaultConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.vault.GcpVaultConfiguration;
 /**
  * Configuration for access to GCP Secret.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class GcpVaultConfigurationProperties extends GcpVaultConfiguration 
implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/HashicorpVaultConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/HashicorpVaultConfigurationProperties.java
index 04490af8409..1126f5e501d 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/HashicorpVaultConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/HashicorpVaultConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.vault.HashicorpVaultConfiguration;
 /**
  * Configuration for access to AWS Secret.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class HashicorpVaultConfigurationProperties extends 
HashicorpVaultConfiguration implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/HealthConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/HealthConfigurationProperties.java
index e508f75454a..5c6bcde1700 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/HealthConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/HealthConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Global configuration for Health Check
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class HealthConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/HttpServerConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/HttpServerConfigurationProperties.java
index a9bb82c78d7..dcc30177cbc 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/HttpServerConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/HttpServerConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Configuration for embedded HTTP server for standalone Camel applications 
(not Spring Boot / Quarkus).
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class HttpServerConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/KubernetesVaultConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/KubernetesVaultConfigurationProperties.java
index 4bf65f3e619..f568b36bb13 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/KubernetesVaultConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/KubernetesVaultConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.vault.KubernetesVaultConfiguration;
 /**
  * Configuration for access to AWS Secret.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class KubernetesVaultConfigurationProperties extends 
KubernetesVaultConfiguration implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/LraConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/LraConfigurationProperties.java
index 0246b724b0b..bc2e19e68cb 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/LraConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/LraConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Global configuration for Saga LRA
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class LraConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
index e3cf452be1d..4327c3f7133 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
@@ -31,7 +31,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Global configuration for Camel Main to configure context name, stream 
caching and other global configurations.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class MainConfigurationProperties extends 
DefaultConfigurationProperties<MainConfigurationProperties>
         implements BootstrapCloseable {
 
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 c4647e982c2..c5551bed229 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
@@ -316,6 +316,26 @@ public final class MainHelper {
             configurer = 
PluginHelper.getBootstrapConfigurerResolver(context).resolvePropertyConfigurer(name,
 context);
         }
 
+        // we should be flexible in terms of property names as the user may 
type in names using different cases and
+        // with or without dots (especially from ENV variables)
+        if (configurer instanceof ExtendedPropertyConfigurerGetter ec) {
+            Map<String, Object> options = ec.getAllOptions(target);
+            for (String key : options.keySet()) {
+                // first char is upper case
+                key = Character.toLowerCase(key.charAt(0)) + key.substring(1);
+                String actualKey = key;
+                // convert camelCase to dot notation (via toDash)
+                key = StringHelper.camelCaseToDot(key);
+                if (properties.get(key) != null) {
+                    Object value = properties.get(key);
+                    String loc = properties.getLocation(key);
+                    properties.remove(key);
+                    properties.put(loc, actualKey, value);
+                    LOG.debug("Adjusting property key: {} -> {}", key, 
actualKey);
+                }
+            }
+        }
+
         try {
             // keep a reference of the original keys
             OrderedLocationProperties backup = new OrderedLocationProperties();
@@ -363,6 +383,13 @@ public final class MainHelper {
                         "Error configuring property ({}) with name: {}) on 
bean: {} with value: {}. This exception is ignored as failIfNotSet=false.",
                         key, e.getPropertyName(), target, e.getValue(), e);
             }
+        } catch (Exception e) {
+            if (failIfNotSet) {
+                throw e;
+            } else {
+                LOG.debug("Error configuring properties on bean: {}. This 
exception is ignored as failIfNotSet=false.", target,
+                        e);
+            }
         }
 
         return rc;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
index 772d3242c17..0fd2bcd8e2b 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/MetricsConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Global configuration for Micrometer Metrics.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class MetricsConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/OtelConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/OtelConfigurationProperties.java
index 7848d9f9d5d..2ee9adfa779 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/OtelConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/OtelConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Global configuration for OpenTelemetry
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class OtelConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
index f1cc43e7982..078b60c2f6c 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/RestConfigurationProperties.java
@@ -25,7 +25,7 @@ import org.apache.camel.spi.RestConfiguration;
 /**
  * Global configuration for Rest DSL.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class RestConfigurationProperties extends RestConfiguration implements 
BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/RouteControllerConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/RouteControllerConfigurationProperties.java
index d19a0576f81..4564e39235d 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/RouteControllerConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/RouteControllerConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Route controller configuration.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class RouteControllerConfigurationProperties implements 
BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/SSLConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/SSLConfigurationProperties.java
index 675b620e6e6..d572db76b6d 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/SSLConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/SSLConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Global configuration for SSL.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class SSLConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolConfigurationProperties.java
index d37d140e120..9f007c5a1bb 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolConfigurationProperties.java
@@ -27,7 +27,7 @@ import 
org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy;
 /**
  * Global configuration for thread pools
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class ThreadPoolConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolProfileConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolProfileConfigurationProperties.java
index 1b10da9384c..9da5344949e 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolProfileConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/ThreadPoolProfileConfigurationProperties.java
@@ -21,7 +21,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.spi.Configurer;
 import org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy;
 
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class ThreadPoolProfileConfigurationProperties {
 
     private String id;
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/TracerConfigurationProperties.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/TracerConfigurationProperties.java
index 0bf6aa2b37b..6d2eba264df 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/TracerConfigurationProperties.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/TracerConfigurationProperties.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.Metadata;
 /**
  * Tracer configuration.
  */
-@Configurer(bootstrap = true)
+@Configurer(bootstrap = true, extended = true)
 public class TracerConfigurationProperties implements BootstrapCloseable {
 
     private MainConfigurationProperties parent;
diff --git 
a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java 
b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
index f414f3d60af..47cd92f9af0 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
@@ -1185,6 +1185,20 @@ public final class StringHelper {
         return m.matches();
     }
 
+    /**
+     * Converts the string from camel case into dot format (helloGreatWorld -> 
hello.great.world)
+     *
+     * @param  text the string
+     * @return      the string dot cased
+     */
+    public static String camelCaseToDot(String text) {
+        if (text == null || text.isEmpty()) {
+            return text;
+        }
+        text = camelCaseToDash(text);
+        return text.replace('-', '.');
+    }
+
     /**
      * Converts the string from camel case into dash format (helloGreatWorld 
-> hello-great-world)
      *
diff --git 
a/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java 
b/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java
index 5e0a91b7689..d56cd78d280 100644
--- a/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java
+++ b/core/camel-util/src/test/java/org/apache/camel/util/StringHelperTest.java
@@ -63,6 +63,39 @@ public class StringHelperTest {
         assertEquals("enable-cors", camelCaseToDash("enableCORS"));
     }
 
+    @Test
+    public void testCamelCashToDot() {
+        assertNull(camelCaseToDot(null));
+        assertEquals("", camelCaseToDot(""));
+
+        assertEquals("hello.world", camelCaseToDot("HelloWorld"));
+        assertEquals("hello.big.world", camelCaseToDot("HelloBigWorld"));
+        assertEquals("hello.big.world", camelCaseToDot("Hello-bigWorld"));
+        assertEquals("my.id", camelCaseToDot("MyId"));
+        assertEquals("my.id", camelCaseToDot("MyID"));
+        assertEquals("my.url", camelCaseToDot("MyUrl"));
+        assertEquals("my.url", camelCaseToDot("MyURL"));
+        assertEquals("my.big.id", camelCaseToDot("MyBigId"));
+        assertEquals("my.big.id", camelCaseToDot("MyBigID"));
+        assertEquals("my.big.url", camelCaseToDot("MyBigUrl"));
+        assertEquals("my.big.url", camelCaseToDot("MyBigURL"));
+        assertEquals("my.big.id.again", camelCaseToDot("MyBigIdAgain"));
+        assertEquals("my.big.id.again", camelCaseToDot("MyBigIDAgain"));
+        assertEquals("my.big.url.again", camelCaseToDot("MyBigUrlAgain"));
+        assertEquals("my.big.url.again", camelCaseToDot("MyBigURLAgain"));
+
+        assertEquals("use.mdc.logging", camelCaseToDot("UseMDCLogging"));
+        assertEquals("mdc.logging.keys.pattern", 
camelCaseToDot("MDCLoggingKeysPattern"));
+        assertEquals("available.phone.number.country", 
camelCaseToDot("AVAILABLE_PHONE_NUMBER_COUNTRY"));
+        assertEquals("available.phone.number.country", 
camelCaseToDot("AVAILABLE-PHONE_NUMBER-COUNTRY"));
+        assertEquals("available.phone.number.country", 
camelCaseToDot("Available-Phone-Number-Country"));
+        assertEquals("available.phone.number.country", 
camelCaseToDot("Available_Phone_Number_Country"));
+        assertEquals("available.phone.number.country", 
camelCaseToDot("available_phone_number_country"));
+        assertEquals("available.phone.number.country", 
camelCaseToDot("availablePhoneNumberCountry"));
+        assertEquals("available.phone.number.country", 
camelCaseToDot("AvailablePhoneNumberCountry"));
+        assertEquals("enable.cors", camelCaseToDot("enableCORS"));
+    }
+
     @Test
     public void testDashToCamelCase() {
         assertEquals("enableCors", dashToCamelCase("enable-cors"));

Reply via email to