This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 3eca9b4 CAMEL-13690: camel-main - Option to disable using OS
environment variables.
3eca9b4 is described below
commit 3eca9b45645a3ee9e13121f2c7b6467066f6d1e5
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Jun 27 12:14:48 2019 +0200
CAMEL-13690: camel-main - Option to disable using OS environment variables.
---
.../camel/main/MainConfigurationProperties.java | 28 ++++++++++
.../java/org/apache/camel/main/MainSupport.java | 64 ++++++++++++++--------
.../camel-main-configuration-metadata.json | 7 +++
.../META-INF/spring-configuration-metadata.json | 7 +++
.../META-INF/spring-configuration-metadata.json | 7 +++
.../META-INF/spring-configuration-metadata.json | 7 +++
6 files changed, 98 insertions(+), 22 deletions(-)
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 2925337..fe3aa8d 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
@@ -22,6 +22,7 @@ package org.apache.camel.main;
public class MainConfigurationProperties extends
DefaultConfigurationProperties<MainConfigurationProperties> {
private boolean autoConfigurationEnabled = true;
+ private boolean autoConfigurationEnvironmentVariablesEnabled = true;
private boolean autoConfigurationFailFast = true;
private boolean autowireComponentProperties = true;
private boolean autowireComponentPropertiesDeep;
@@ -81,6 +82,21 @@ public class MainConfigurationProperties extends
DefaultConfigurationProperties<
this.autoConfigurationEnabled = autoConfigurationEnabled;
}
+ public boolean isAutoConfigurationEnvironmentVariablesEnabled() {
+ return autoConfigurationEnvironmentVariablesEnabled;
+ }
+
+ /**
+ * Whether auto configuration should include OS environment variables as
well. When enabled this
+ * allows to overrule any configuration using an OS environment variable.
For example to set
+ * a shutdown timeout of 5 seconds: CAMEL_MAIN_SHUTDOWNTIMEOUT=5.
+ * <p/>
+ * This option is default enabled.
+ */
+ public void setAutoConfigurationEnvironmentVariablesEnabled(boolean
autoConfigurationEnvironmentVariablesEnabled) {
+ this.autoConfigurationEnvironmentVariablesEnabled =
autoConfigurationEnvironmentVariablesEnabled;
+ }
+
public boolean isAutoConfigurationFailFast() {
return autoConfigurationFailFast;
}
@@ -188,6 +204,18 @@ public class MainConfigurationProperties extends
DefaultConfigurationProperties<
}
/**
+ * Whether auto configuration should include OS environment variables as
well. When enabled this
+ * allows to overrule any configuration using an OS environment variable.
For example to set
+ * a shutdown timeout of 5 seconds: CAMEL_MAIN_SHUTDOWNTIMEOUT=5.
+ * <p/>
+ * This option is default enabled.
+ */
+ public MainConfigurationProperties
withAutoConfigurationEnvironmentVariablesEnabled(boolean
autoConfigurationEnvironmentVariablesEnabled) {
+ this.autoConfigurationEnvironmentVariablesEnabled =
autoConfigurationEnvironmentVariablesEnabled;
+ return this;
+ }
+
+ /**
* Whether auto configuration should fail fast when configuring one ore
more properties fails for whatever reason
* such as a invalid property name, etc.
* <p/>
diff --git
a/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
b/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
index af3787f..57be0f3 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
@@ -776,18 +776,30 @@ public abstract class MainSupport extends ServiceSupport {
LOG.debug(" {}={}", key, prop.getProperty(key));
}
+ // special for environment-variable-enbaled as we need to know this
early before we set all the other options
+ Object envEnabled =
prop.remove("camel.main.autoConfigurationEnvironmentVariablesEnabled");
+ if (envEnabled == null) {
+ envEnabled =
prop.remove("camel.main.auto-configuration-environment-variables-enabled");
+ if (envEnabled != null) {
+ PropertyBindingSupport.bindMandatoryProperty(camelContext,
mainConfigurationProperties, "autoConfigurationEnvironmentVariablesEnabled",
envEnabled, true);
+ }
+ }
+
// load properties from ENV (override existing)
- Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.main."});
- if (!propENV.isEmpty()) {
- prop.putAll(propENV);
- LOG.debug("Properties from OS environment variables:");
- for (String key : propENV.stringPropertyNames()) {
- LOG.debug(" {}={}", key, propENV.getProperty(key));
+ Properties propENV = null;
+ if
(mainConfigurationProperties.isAutoConfigurationEnvironmentVariablesEnabled()) {
+ propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.main."});
+ if (!propENV.isEmpty()) {
+ prop.putAll(propENV);
+ LOG.debug("Properties from OS environment variables:");
+ for (String key : propENV.stringPropertyNames()) {
+ LOG.debug(" {}={}", key, propENV.getProperty(key));
+ }
}
}
// special for fail-fast as we need to know this early before we set
all the other options
- Object failFast =
propENV.remove("camel.main.autoconfigurationfailfast");
+ Object failFast = propENV != null ?
propENV.remove("camel.main.autoconfigurationfailfast") : null;
if (failFast != null) {
PropertyBindingSupport.bindMandatoryProperty(camelContext,
mainConfigurationProperties, "autoConfigurationFailFast", failFast, true);
} else {
@@ -843,12 +855,14 @@ public abstract class MainSupport extends ServiceSupport {
Properties prop =
camelContext.getPropertiesComponent().loadProperties();
// load properties from ENV (override existing)
- Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.component.properties."});
- if (!propENV.isEmpty()) {
- prop.putAll(propENV);
- LOG.debug("Properties from OS environment variables:");
- for (String key : propENV.stringPropertyNames()) {
- LOG.debug(" {}={}", key, propENV.getProperty(key));
+ if
(mainConfigurationProperties.isAutoConfigurationEnvironmentVariablesEnabled()) {
+ Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.component.properties."});
+ if (!propENV.isEmpty()) {
+ prop.putAll(propENV);
+ LOG.debug("Properties from OS environment variables:");
+ for (String key : propENV.stringPropertyNames()) {
+ LOG.debug(" {}={}", key, propENV.getProperty(key));
+ }
}
}
@@ -931,9 +945,11 @@ public abstract class MainSupport extends ServiceSupport {
Properties prop =
camelContext.getPropertiesComponent().loadProperties();
// load properties from ENV (override existing)
- Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.component.properties."});
- if (!propENV.isEmpty()) {
- prop.putAll(propENV);
+ if
(mainConfigurationProperties.isAutoConfigurationEnvironmentVariablesEnabled()) {
+ Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.component.properties."});
+ if (!propENV.isEmpty()) {
+ prop.putAll(propENV);
+ }
}
Map<String, Object> properties = new LinkedHashMap<>();
@@ -966,9 +982,11 @@ public abstract class MainSupport extends ServiceSupport {
Properties prop =
camelContext.getPropertiesComponent().loadProperties();
// load properties from ENV (override existing)
- Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.main."});
- if (!propENV.isEmpty()) {
- prop.putAll(propENV);
+ if
(mainConfigurationProperties.isAutoConfigurationEnvironmentVariablesEnabled()) {
+ Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.main."});
+ if (!propENV.isEmpty()) {
+ prop.putAll(propENV);
+ }
}
Map<String, Object> properties = new LinkedHashMap<>();
@@ -1024,9 +1042,11 @@ public abstract class MainSupport extends ServiceSupport
{
prop.putAll(propPC);
// load properties from ENV (override existing)
- Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.component.", "camel.dataformat.", "camel.language."});
- if (!propENV.isEmpty()) {
- prop.putAll(propENV);
+ if
(mainConfigurationProperties.isAutoConfigurationEnvironmentVariablesEnabled()) {
+ Properties propENV = loadEnvironmentVariablesAsProperties(new
String[]{"camel.component.", "camel.dataformat.", "camel.language."});
+ if (!propENV.isEmpty()) {
+ prop.putAll(propENV);
+ }
}
Map<PropertyOptionKey, Map<String, Object>> properties = new
LinkedHashMap<>();
diff --git
a/core/camel-main/src/main/resources/META-INF/camel-main-configuration-metadata.json
b/core/camel-main/src/main/resources/META-INF/camel-main-configuration-metadata.json
index 0327eca..99336ac 100644
---
a/core/camel-main/src/main/resources/META-INF/camel-main-configuration-metadata.json
+++
b/core/camel-main/src/main/resources/META-INF/camel-main-configuration-metadata.json
@@ -31,6 +31,13 @@
"defaultValue":"true"
},
{
+
"name":"camel.main.auto-configuration-environment-variables-enabled",
+ "type":"boolean",
+
"sourceType":"org.apache.camel.main.MainConfigurationProperties",
+ "description":"Whether auto configuration should
include OS environment variables as well. When enabled this allows to overrule
any configuration using an OS environment variable. For example to set a
shutdown timeout of 5 seconds: CAMEL_MAIN_SHUTDOWNTIMEOUT=5. This option is
default enabled.",
+ "defaultValue":"true"
+ },
+ {
"name":"camel.main.auto-configuration-fail-fast",
"type":"boolean",
"sourceType":"org.apache.camel.main.MainConfigurationProperties",
diff --git
a/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
b/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
index 364d91c..12d0c0a 100644
---
a/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
+++
b/examples/camel-example-main-artemis/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -171,6 +171,13 @@
"defaultValue":"true"
},
{
+
"name":"camel.main.auto-configuration-environment-variables-enabled",
+ "type":"boolean",
+
"sourceType":"org.apache.camel.main.MainConfigurationProperties",
+ "description":"Whether auto configuration should
include OS environment variables as well. When enabled this allows to overrule
any configuration using an OS environment variable. For example to set a
shutdown timeout of 5 seconds: CAMEL_MAIN_SHUTDOWNTIMEOUT=5. This option is
default enabled.",
+ "defaultValue":"true"
+ },
+ {
"name":"camel.main.auto-configuration-fail-fast",
"type":"boolean",
"sourceType":"org.apache.camel.main.MainConfigurationProperties",
diff --git
a/examples/camel-example-main-tiny/src/main/resources/META-INF/spring-configuration-metadata.json
b/examples/camel-example-main-tiny/src/main/resources/META-INF/spring-configuration-metadata.json
index 31631c0..c10d80b 100644
---
a/examples/camel-example-main-tiny/src/main/resources/META-INF/spring-configuration-metadata.json
+++
b/examples/camel-example-main-tiny/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -51,6 +51,13 @@
"defaultValue":"true"
},
{
+
"name":"camel.main.auto-configuration-environment-variables-enabled",
+ "type":"boolean",
+
"sourceType":"org.apache.camel.main.MainConfigurationProperties",
+ "description":"Whether auto configuration should
include OS environment variables as well. When enabled this allows to overrule
any configuration using an OS environment variable. For example to set a
shutdown timeout of 5 seconds: CAMEL_MAIN_SHUTDOWNTIMEOUT=5. This option is
default enabled.",
+ "defaultValue":"true"
+ },
+ {
"name":"camel.main.auto-configuration-fail-fast",
"type":"boolean",
"sourceType":"org.apache.camel.main.MainConfigurationProperties",
diff --git
a/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json
b/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json
index b5bf26c..c1e44b9 100644
---
a/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json
+++
b/examples/camel-example-main/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -161,6 +161,13 @@
"defaultValue":"true"
},
{
+
"name":"camel.main.auto-configuration-environment-variables-enabled",
+ "type":"boolean",
+
"sourceType":"org.apache.camel.main.MainConfigurationProperties",
+ "description":"Whether auto configuration should
include OS environment variables as well. When enabled this allows to overrule
any configuration using an OS environment variable. For example to set a
shutdown timeout of 5 seconds: CAMEL_MAIN_SHUTDOWNTIMEOUT=5. This option is
default enabled.",
+ "defaultValue":"true"
+ },
+ {
"name":"camel.main.auto-configuration-fail-fast",
"type":"boolean",
"sourceType":"org.apache.camel.main.MainConfigurationProperties",