Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions docs/content/en/docs/documentation/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,12 +184,12 @@ Operator operator = new Operator(ConfigLoader.getDefault().applyConfigs());

### Built-in Providers

| Provider | Source | Key mapping |
|---|---|---|
| `EnvVarConfigProvider` | `System.getenv()` | dots and hyphens → underscores, upper-cased (`josdk.check-crd` → `JOSDK_CHECK_CRD`) |
| `PropertiesConfigProvider` | `java.util.Properties` or `.properties` file | key used as-is; use `PropertiesConfigProvider.systemProperties()` to read Java system properties |
| `YamlConfigProvider` | YAML file | dot-separated key traverses nested mappings |
| `AgregatePriorityListConfigProvider` | ordered list of providers | first non-empty result wins |
| Provider | Source | Key mapping |
|---------------------------------------|---|---|
| `EnvVarConfigProvider` | `System.getenv()` | dots and hyphens → underscores, upper-cased (`josdk.check-crd` → `JOSDK_CHECK_CRD`) |
| `PropertiesConfigProvider` | `java.util.Properties` or `.properties` file | key used as-is; use `PropertiesConfigProvider.systemProperties()` to read Java system properties |
| `YamlConfigProvider` | YAML file | dot-separated key traverses nested mappings |
| `AggregatePriorityListConfigProvider` | ordered list of providers | first non-empty result wins |

All string-based providers convert values to the target type automatically.
Supported types: `String`, `Boolean`, `Integer`, `Long`, `Double`, `Duration` (ISO-8601, e.g. `PT30S`).
Expand Down Expand Up @@ -244,11 +244,11 @@ Only keys that are actually present in the source are applied; everything else r
programmatic or annotation-based default.

You can also compose multiple sources with explicit priority using
`AgregatePriorityListConfigProvider`:
`AggregatePriorityListConfigProvider`:

```java
var configLoader = new ConfigLoader(
new AgregatePriorityListConfigProvider(List.of(
new AggregatePriorityListConfigProvider(List.of(
new EnvVarConfigProvider(), // highest priority
PropertiesConfigProvider.systemProperties(),
new YamlConfigProvider(Path.of("config/operator.yaml")) // lowest priority
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider;
import io.javaoperatorsdk.operator.api.config.ControllerConfigurationOverrider;
import io.javaoperatorsdk.operator.api.config.LeaderElectionConfigurationBuilder;
import io.javaoperatorsdk.operator.config.loader.provider.AgregatePriorityListConfigProvider;
import io.javaoperatorsdk.operator.config.loader.provider.AggregatePriorityListConfigProvider;
import io.javaoperatorsdk.operator.config.loader.provider.EnvVarConfigProvider;
import io.javaoperatorsdk.operator.config.loader.provider.PropertiesConfigProvider;
import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter;
Expand Down Expand Up @@ -166,7 +166,7 @@ public static ConfigLoader getDefault() {

public ConfigLoader() {
this(
new AgregatePriorityListConfigProvider(
new AggregatePriorityListConfigProvider(
List.of(new EnvVarConfigProvider(), PropertiesConfigProvider.systemProperties())),
DEFAULT_CONTROLLER_KEY_PREFIX,
DEFAULT_OPERATOR_KEY_PREFIX);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@
* A {@link ConfigProvider} that delegates to an ordered list of providers. Providers are queried in
* list order; the first non-empty result wins.
*/
public class AgregatePriorityListConfigProvider implements ConfigProvider {
public class AggregatePriorityListConfigProvider implements ConfigProvider {

private final List<ConfigProvider> providers;

public AgregatePriorityListConfigProvider(List<ConfigProvider> providers) {
public AggregatePriorityListConfigProvider(List<ConfigProvider> providers) {
this.providers = List.copyOf(providers);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ public <T> Optional<T> getValue(String key, Class<T> type) {
// -- binding coverage -------------------------------------------------------

/**
* Supported scalar types that AgregatePriorityListConfigProvider can parse from a string. Every
* Supported scalar types that AggregatePriorityListConfigProvider can parse from a string. Every
* binding's type must be one of these.
*/
private static final Set<Class<?>> SUPPORTED_TYPES =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ private static PropertiesConfigProvider propsProvider(String key, String value)
@Test
void returnsEmptyWhenAllProvidersReturnEmpty() {
var provider =
new AgregatePriorityListConfigProvider(
new AggregatePriorityListConfigProvider(
List.of(new EnvVarConfigProvider(k -> null), propsProvider(null, null)));
assertThat(provider.getValue("josdk.no.such.key", String.class)).isEmpty();
}

@Test
void firstProviderWins() {
var provider =
new AgregatePriorityListConfigProvider(
new AggregatePriorityListConfigProvider(
List.of(
new EnvVarConfigProvider(k -> k.equals("JOSDK_TEST_KEY") ? "first" : null),
propsProvider("josdk.test.key", "second")));
Expand All @@ -53,7 +53,7 @@ void firstProviderWins() {
@Test
void fallsBackToLaterProviderWhenEarlierReturnsEmpty() {
var provider =
new AgregatePriorityListConfigProvider(
new AggregatePriorityListConfigProvider(
List.of(
new EnvVarConfigProvider(k -> null),
propsProvider("josdk.test.key", "from-second")));
Expand All @@ -66,7 +66,7 @@ void respectsOrderWithThreeProviders() {
var second = propsProvider("josdk.test.key", "from-second");
var third = new EnvVarConfigProvider(k -> k.equals("JOSDK_TEST_KEY") ? "from-third" : null);

var provider = new AgregatePriorityListConfigProvider(List.of(first, second, third));
var provider = new AggregatePriorityListConfigProvider(List.of(first, second, third));
assertThat(provider.getValue("josdk.test.key", String.class)).hasValue("from-second");
}
}