This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 8d60fa83607 CAMEL-21320: camel-main/camel-jbang - Make it possible to
configure all groups via ENV variables on startup.
8d60fa83607 is described below
commit 8d60fa836077386a8278ff4d6ccab7be7f6a3dd4
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Oct 5 08:10:54 2024 +0200
CAMEL-21320: camel-main/camel-jbang - Make it possible to configure all
groups via ENV variables on startup.
---
.../main/java/org/apache/camel/main/BaseMainSupport.java | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git
a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
index 140f00b6026..e57458663a2 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
@@ -131,6 +131,13 @@ public abstract class BaseMainSupport extends BaseService {
private static final Logger LOG =
LoggerFactory.getLogger(BaseMainSupport.class);
+ private static final String[] GROUP_PREFIXES = new String[] {
+ "camel.context.", "camel.resilience4j.", "camel.faulttolerance.",
+ "camel.rest.", "camel.vault.", "camel.threadpool.",
"camel.health.",
+ "camel.lra.", "camel.opentelemetry.", "camel.metrics.",
"camel.routeTemplate",
+ "camel.devConsole.", "camel.variable.", "camel.beans.",
"camel.globalOptions.",
+ "camel.server.", "camel.ssl.", "camel.debug.", "camel.trace.",
"camel.routeController." };
+
protected final List<MainListener> listeners = new ArrayList<>();
protected volatile CamelContext camelContext;
protected final MainConfigurationProperties mainConfigurationProperties =
new MainConfigurationProperties();
@@ -1007,14 +1014,14 @@ public abstract class BaseMainSupport extends
BaseService {
// lookup and configure SPI beans
DefaultConfigurationConfigurer.afterConfigure(camelContext);
- // now configure context/resilience4j/rest with additional properties
+ // now configure the various camel groups
OrderedLocationProperties prop = (OrderedLocationProperties)
camelContext.getPropertiesComponent()
.loadProperties(name -> name.startsWith("camel."),
MainHelper::optionKey);
// load properties from ENV (override existing)
if
(mainConfigurationProperties.isAutoConfigurationEnvironmentVariablesEnabled()) {
Properties propENV
- = MainHelper.loadEnvironmentVariablesAsProperties(new
String[] { "camel.component.properties." });
+ =
MainHelper.loadEnvironmentVariablesAsProperties(GROUP_PREFIXES);
if (!propENV.isEmpty()) {
prop.putAll("ENV", propENV);
LOG.debug("Properties from OS environment variables:");
@@ -1025,7 +1032,7 @@ public abstract class BaseMainSupport extends BaseService
{
}
// load properties from JVM (override existing)
if
(mainConfigurationProperties.isAutoConfigurationSystemPropertiesEnabled()) {
- Properties propJVM =
MainHelper.loadJvmSystemPropertiesAsProperties(new String[] {
"camel.component.properties." });
+ Properties propJVM =
MainHelper.loadJvmSystemPropertiesAsProperties(GROUP_PREFIXES);
if (!propJVM.isEmpty()) {
prop.putAll("SYS", propJVM);
LOG.debug("Properties from JVM system properties:");
@@ -1055,6 +1062,7 @@ public abstract class BaseMainSupport extends BaseService
{
OrderedLocationProperties debuggerProperties = new
OrderedLocationProperties();
OrderedLocationProperties tracerProperties = new
OrderedLocationProperties();
OrderedLocationProperties routeControllerProperties = new
OrderedLocationProperties();
+
for (String key : prop.stringPropertyNames()) {
String loc = prop.getLocation(key);
if (startsWithIgnoreCase(key, "camel.context.")) {