use of io.helidon.config.Config in project helidon by oracle.
the class DbClientHealthCheckTest method testBuilderQueryFromConfig.
/**
* Test health check builder with custom query statement
*/
@Test
void testBuilderQueryFromConfig() {
final Config config = Config.create(ConfigSources.classpath("testBuilderFromConfig.yaml"));
final DbClient dbClient = new DbClientMock();
final Config healthConfig = config.get("health-check-query");
final DbClientHealthCheck.Builder builder = DbClientHealthCheck.builder(dbClient).config(healthConfig);
// Config file value
final String configName = healthConfig.get("name").as(String.class).get();
final String configType = healthConfig.get("type").as(String.class).get();
final String configStatement = healthConfig.get("statement").as(String.class).get();
// final String configStatementName = healthConfig.get("statementName").as(String.class).get();
final Long configTimeout = healthConfig.get("timeout").as(Long.class).get();
final String configTimeUnit = healthConfig.get("timeUnit").as(String.class).get();
// Builder instance content
final String name = builder.name();
final boolean isDML = builder.isDML();
final String statement = builder.statement();
final String statementName = builder.statementName();
final boolean isNamedstatement = builder.isNamedstatement();
final long timeoutDuration = builder.timeoutDuration();
final TimeUnit timeoutUnit = builder.timeoutUnit();
// Verify builder internal state
assertThat(name, equalTo(configName));
assertThat(isDML, equalTo(false));
assertThat(statement, equalTo(configStatement));
assertThat(statementName, nullValue());
assertThat(isNamedstatement, equalTo(false));
assertThat(timeoutDuration, equalTo(configTimeout));
assertThat(timeoutUnit.name().toLowerCase(), equalTo(configTimeUnit.toLowerCase()));
DbClientHealthCheck check = builder.build();
// Health check instance content
final String checkName = check.name();
final long checkTimeoutDuration = check.timeoutDuration();
final TimeUnit checkTimeoutUnit = check.timeoutUnit();
// Verify health check class and internal content
assertThat(check.getClass().getSimpleName(), equalTo("DbClientHealthCheckAsQuery"));
assertThat(checkName, equalTo(configName));
assertThat(((DbClientHealthCheck.DbClientHealthCheckAsQuery) check).statement(), equalTo(configStatement));
assertThat(checkTimeoutDuration, equalTo(configTimeout));
assertThat(checkTimeoutUnit.name().toLowerCase(), equalTo(configTimeUnit.toLowerCase()));
}
use of io.helidon.config.Config in project helidon by oracle.
the class DbClientHealthCheckTest method testBuilderNamedDmlFromConfig.
/**
* Test health check builder with named DML statement
*/
@Test
void testBuilderNamedDmlFromConfig() {
final Config config = Config.create(ConfigSources.classpath("testBuilderFromConfig.yaml"));
final DbClient dbClient = new DbClientMock();
final Config healthConfig = config.get("health-check-dml-named");
final DbClientHealthCheck.Builder builder = DbClientHealthCheck.builder(dbClient).config(healthConfig);
// Config file value
final String configName = healthConfig.get("name").as(String.class).get();
final String configType = healthConfig.get("type").as(String.class).get();
final String configStatementName = healthConfig.get("statementName").as(String.class).get();
final Long configTimeout = healthConfig.get("timeout").as(Long.class).get();
final String configTimeUnit = healthConfig.get("timeUnit").as(String.class).get();
// Builder instance content
final String name = builder.name();
final boolean isDML = builder.isDML();
final String statement = builder.statement();
final String statementName = builder.statementName();
final boolean isNamedstatement = builder.isNamedstatement();
final long timeoutDuration = builder.timeoutDuration();
final TimeUnit timeoutUnit = builder.timeoutUnit();
// Verify builder internal state
assertThat(name, equalTo(configName));
assertThat(isDML, equalTo(true));
assertThat(statement, nullValue());
assertThat(statementName, equalTo(configStatementName));
assertThat(isNamedstatement, equalTo(true));
assertThat(timeoutDuration, equalTo(configTimeout));
assertThat(timeoutUnit.name().toLowerCase(), equalTo(configTimeUnit.toLowerCase()));
DbClientHealthCheck check = builder.build();
assertThat(check.getClass().getSimpleName(), equalTo("DbClientHealthCheckAsNamedDml"));
// Health check instance content
final String checkName = check.name();
final long checkTimeoutDuration = check.timeoutDuration();
final TimeUnit checkTimeoutUnit = check.timeoutUnit();
// Verify health check class and internal content
assertThat(check.getClass().getSimpleName(), equalTo("DbClientHealthCheckAsNamedDml"));
assertThat(checkName, equalTo(configName));
assertThat(((DbClientHealthCheck.DbClientHealthCheckAsNamedDml) check).statementName(), equalTo(configStatementName));
assertThat(checkTimeoutDuration, equalTo(configTimeout));
assertThat(checkTimeoutUnit.name().toLowerCase(), equalTo(configTimeUnit.toLowerCase()));
}
use of io.helidon.config.Config in project helidon by oracle.
the class DbClientHealthCheckTest method testBuilderDmlFromConfig.
/**
* Test health check builder with custom DML statement
*/
@Test
void testBuilderDmlFromConfig() {
final Config config = Config.create(ConfigSources.classpath("testBuilderFromConfig.yaml"));
final DbClient dbClient = new DbClientMock();
final Config healthConfig = config.get("health-check-dml");
final DbClientHealthCheck.Builder builder = DbClientHealthCheck.builder(dbClient).config(healthConfig);
// Config file value
final String configName = healthConfig.get("name").as(String.class).get();
final String configStatement = healthConfig.get("statement").as(String.class).get();
final Long configTimeout = healthConfig.get("timeout").as(Long.class).get();
final String configTimeUnit = healthConfig.get("timeUnit").as(String.class).get();
// Builder instance content
final String name = builder.name();
final boolean isDML = builder.isDML();
final String statement = builder.statement();
final String statementName = builder.statementName();
final boolean isNamedstatement = builder.isNamedstatement();
final long timeoutDuration = builder.timeoutDuration();
final TimeUnit timeoutUnit = builder.timeoutUnit();
// Verify builder internal content
assertThat(name, equalTo(configName));
assertThat(isDML, equalTo(true));
assertThat(statement, equalTo(configStatement));
assertThat(statementName, nullValue());
assertThat(isNamedstatement, equalTo(false));
assertThat(timeoutDuration, equalTo(configTimeout));
assertThat(timeoutUnit.name().toLowerCase(), equalTo(configTimeUnit.toLowerCase()));
DbClientHealthCheck check = builder.build();
// Health check instance content
final String checkName = check.name();
final long checkTimeoutDuration = check.timeoutDuration();
final TimeUnit checkTimeoutUnit = check.timeoutUnit();
// Verify health check class and internal content
assertThat(check.getClass().getSimpleName(), equalTo("DbClientHealthCheckAsDml"));
assertThat(checkName, equalTo(configName));
assertThat(((DbClientHealthCheck.DbClientHealthCheckAsDml) check).statement(), equalTo(configStatement));
assertThat(checkTimeoutDuration, equalTo(configTimeout));
assertThat(checkTimeoutUnit.name().toLowerCase(), equalTo(configTimeUnit.toLowerCase()));
}
use of io.helidon.config.Config in project helidon by oracle.
the class Main method main.
/**
* Executes the example.
*
* @param args arguments
* @throws IOException when some git repo operation failed
*/
public static void main(String... args) throws IOException {
// we expect a name of the current environment in envvar ENVIRONMENT_NAME
// in this example we just set envvar in maven plugin 'exec', but can be set in k8s pod via ConfigMap
Config env = Config.create(ConfigSources.environmentVariables());
String branch = env.get(ENVIRONMENT_NAME_PROPERTY).asString().orElse("master");
System.out.println("Loading from branch " + branch);
Config config = Config.create(GitConfigSource.builder().path("application.conf").uri(URI.create("https://github.com/helidonrobot/test-config.git")).branch(branch).build());
System.out.println("Greeting is " + config.get("greeting").asString().get());
assert config.get("greeting").asString().get().equals("hello");
}
use of io.helidon.config.Config in project helidon by oracle.
the class BuilderExample method main.
/**
* Executes the example.
*
* @param args arguments
*/
public static void main(String... args) {
Config config = Config.create(ConfigSources.classpath("application.conf"));
AppConfig appConfig = config.get("app").as(AppConfig.class).get();
System.out.println(appConfig);
assert appConfig.getGreeting().equals("Hello");
assert appConfig.getPageSize() == 20;
assert appConfig.getBasicRange().size() == 2;
assert appConfig.getBasicRange().get(0) == -20;
assert appConfig.getBasicRange().get(1) == 20;
}
Aggregations