Skip to content

Commit 8cefd76

Browse files
authored
Use common config (helidon-io#7336)
Do not use Config.create() in Helidon modules
1 parent 03daf27 commit 8cefd76

28 files changed

Lines changed: 82 additions & 49 deletions

File tree

common/config/src/main/java/io/helidon/common/config/Config.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,16 @@ default Config get(Key key) {
233233
*/
234234
<T> ConfigValue<List<T>> asList(Class<T> type) throws ConfigException;
235235

236+
/**
237+
* Returns this node as a list mapping each list value using the provided mapper.
238+
*
239+
* @param mapper mapper to convert each list node into a typed value
240+
* @param <T> type of list elements
241+
* @return a typed list with values
242+
* @throws io.helidon.common.config.ConfigException in case the mapper fails to map the values
243+
*/
244+
<T> ConfigValue<List<T>> mapList(Function<Config, T> mapper) throws ConfigException;
245+
236246
/**
237247
* Returns a list of child {@code Config} nodes if the node is {@code Type#OBJECT}.
238248
* Returns a list of element nodes if the node is {@code Type#LIST}.

common/config/src/main/java/io/helidon/common/config/EmptyConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,11 @@ public <T> ConfigValue<List<T>> asList(Class<T> type) throws ConfigException {
215215
return new EmptyValue<>(this.key);
216216
}
217217

218+
@Override
219+
public <T> ConfigValue<List<T>> mapList(Function<Config, T> mapper) throws ConfigException {
220+
return new EmptyValue<>(this.key);
221+
}
222+
218223
@Override
219224
public <C extends Config> ConfigValue<List<C>> asNodeList() throws ConfigException {
220225
return new EmptyValue<>(this.key);

config/config/src/main/java/io/helidon/config/Config.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.stream.Stream;
3030

3131
import io.helidon.common.GenericType;
32+
import io.helidon.common.config.ConfigException;
3233
import io.helidon.config.spi.ConfigFilter;
3334
import io.helidon.config.spi.ConfigMapper;
3435
import io.helidon.config.spi.ConfigMapperProvider;
@@ -814,6 +815,12 @@ default ConfigValue<Double> asDouble() {
814815
*/
815816
<T> ConfigValue<List<T>> asList(Function<Config, T> mapper) throws ConfigMappingException;
816817

818+
@Override
819+
default <T> io.helidon.common.config.ConfigValue<List<T>> mapList(Function<io.helidon.common.config.Config, T> mapper)
820+
throws ConfigException {
821+
return asList(mapper::apply);
822+
}
823+
817824
/**
818825
* Returns existing current config node as a {@link Optional} instance
819826
* or {@link Optional#empty()} in case of {@link Type#MISSING} node.

config/config/src/main/java/io/helidon/config/ConfigProducer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ public <T> ConfigValue<List<T>> asList(Class<T> type) throws ConfigException {
106106
return config.asList(type);
107107
}
108108

109+
@Override
110+
public <T> ConfigValue<List<T>> mapList(Function<Config, T> mapper) throws ConfigException {
111+
return config.mapList(mapper);
112+
}
113+
109114
@Override
110115
public <C extends Config> ConfigValue<List<C>> asNodeList() throws ConfigException {
111116
return config.asNodeList();

dbclient/metrics/src/main/java/io/helidon/dbclient/metrics/MetricBuilderBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import java.util.function.BiFunction;
1919

20-
import io.helidon.config.Config;
20+
import io.helidon.common.config.Config;
2121
import io.helidon.dbclient.DbClientServiceBase;
2222
import io.helidon.dbclient.DbStatementType;
2323

integrations/microstream/metrics/src/main/java/io/helidon/integrations/microstream/metrics/MicrostreamMetricsSupport.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
import java.util.Objects;
2020
import java.util.function.Supplier;
2121

22-
import io.helidon.config.Config;
22+
import io.helidon.common.config.Config;
23+
import io.helidon.metrics.api.MetricsSettings;
2324
import io.helidon.metrics.api.Registry;
2425
import io.helidon.metrics.api.RegistryFactory;
2526

@@ -68,7 +69,7 @@ private MicrostreamMetricsSupport(Builder builder) {
6869
this.embeddedStorageManager = builder.embeddedStorageManager();
6970

7071
if (builder.registryFactory() == null) {
71-
registryFactory = RegistryFactory.getInstance(config);
72+
registryFactory = RegistryFactory.getInstance(MetricsSettings.create(config));
7273
} else {
7374
registryFactory = builder.registryFactory();
7475
}

lra/coordinator/server/src/main/java/io/helidon/lra/coordinator/CoordinatorService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public class CoordinatorService implements HttpService {
8989

9090
CoordinatorService(LraPersistentRegistry lraPersistentRegistry, Supplier<URI> coordinatorUriSupplier, Config config) {
9191
this.lraPersistentRegistry = lraPersistentRegistry;
92-
coordinatorURL = LazyValue.create(coordinatorUriSupplier);
92+
this.coordinatorURL = LazyValue.create(coordinatorUriSupplier);
9393
this.config = config;
9494
init();
9595
}
@@ -418,7 +418,6 @@ private URI coordinatorUriWithPath(String additionalPath) {
418418
*/
419419
public static CoordinatorService create() {
420420
return builder()
421-
.config(Config.create().get(CoordinatorService.CONFIG_PREFIX))
422421
.build();
423422
}
424423

@@ -480,7 +479,7 @@ public Builder url(Supplier<URI> uriSupplier) {
480479
@Override
481480
public CoordinatorService build() {
482481
if (config == null) {
483-
config = Config.create().get(CoordinatorService.CONFIG_PREFIX);
482+
config = Config.empty();
484483
}
485484
if (lraPersistentRegistry == null) {
486485
lraPersistentRegistry = new LraDatabasePersistentRegistry(config);

lra/coordinator/server/src/main/java/io/helidon/lra/coordinator/Main.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2021, 2022 Oracle and/or its affiliates.
2+
* Copyright (c) 2021, 2023 Oracle and/or its affiliates.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -42,7 +42,9 @@ public static void main(String[] args) {
4242

4343
Config config = Config.create();
4444

45-
CoordinatorService coordinatorService = CoordinatorService.builder().build();
45+
CoordinatorService coordinatorService = CoordinatorService.builder()
46+
.config(config.get(CoordinatorService.CONFIG_PREFIX))
47+
.build();
4648

4749
WebServer server = WebServer.builder()
4850
.routing(it -> updateRouting(it, config, coordinatorService))

messaging/connectors/aq/src/main/java/io/helidon/messaging/connectors/aq/AqConnector.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import javax.sql.DataSource;
2525

2626
import io.helidon.common.Builder;
27+
import io.helidon.common.config.Config;
2728
import io.helidon.common.configurable.ScheduledThreadPoolSupplier;
2829
import io.helidon.common.configurable.ThreadPoolSupplier;
2930
import io.helidon.messaging.connectors.jms.JmsConnector;
@@ -187,7 +188,7 @@ class AqConnectorBuilder implements Builder<AqConnectorBuilder, AqConnectorImpl>
187188
private final Map<String, DataSource> dataSourceMap = new HashMap<>();
188189
private ScheduledExecutorService scheduler;
189190
private ExecutorService executor;
190-
private io.helidon.config.Config config;
191+
private Config config;
191192

192193
/**
193194
* Add custom {@link jakarta.jms.ConnectionFactory ConnectionFactory} referencable by supplied name with
@@ -208,7 +209,7 @@ public AqConnectorBuilder dataSource(String name, DataSource dataSource) {
208209
* @param config custom config
209210
* @return this builder
210211
*/
211-
public AqConnectorBuilder config(io.helidon.config.Config config) {
212+
public AqConnectorBuilder config(Config config) {
212213
this.config = config;
213214
return this;
214215
}
@@ -260,7 +261,7 @@ public AqConnectorBuilder scheduler(ScheduledThreadPoolSupplier schedulerPoolSup
260261
@Override
261262
public AqConnectorImpl build() {
262263
if (config == null) {
263-
config = io.helidon.config.Config.empty();
264+
config = Config.empty();
264265
}
265266

266267
if (executor == null) {

metrics/api/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
<artifactId>helidon-common-http</artifactId>
3939
</dependency>
4040
<dependency>
41-
<groupId>io.helidon.config</groupId>
42-
<artifactId>helidon-config</artifactId>
41+
<groupId>io.helidon.common</groupId>
42+
<artifactId>helidon-common-config</artifactId>
4343
</dependency>
4444
<dependency>
4545
<groupId>io.helidon.config</groupId>

0 commit comments

Comments
 (0)