Search in sources :

Example 81 with Config

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()));
}
Also used : DbClient(io.helidon.dbclient.DbClient) Config(io.helidon.config.Config) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test)

Example 82 with Config

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()));
}
Also used : DbClient(io.helidon.dbclient.DbClient) Config(io.helidon.config.Config) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test)

Example 83 with Config

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()));
}
Also used : DbClient(io.helidon.dbclient.DbClient) Config(io.helidon.config.Config) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test)

Example 84 with Config

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");
}
Also used : Config(io.helidon.config.Config)

Example 85 with Config

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;
}
Also used : Config(io.helidon.config.Config)

Aggregations

Config (io.helidon.config.Config)329 Test (org.junit.jupiter.api.Test)169 LogConfig (io.helidon.common.LogConfig)56 WebServer (io.helidon.webserver.WebServer)54 Routing (io.helidon.webserver.Routing)51 BeforeAll (org.junit.jupiter.api.BeforeAll)24 Security (io.helidon.security.Security)20 HealthSupport (io.helidon.health.HealthSupport)18 Single (io.helidon.common.reactive.Single)17 MetricsSupport (io.helidon.metrics.MetricsSupport)16 ExtendWith (org.junit.jupiter.api.extension.ExtendWith)16 ConfigSources (io.helidon.config.ConfigSources)15 JsonpSupport (io.helidon.media.jsonp.JsonpSupport)15 SecurityContext (io.helidon.security.SecurityContext)15 Optional (java.util.Optional)15 TimeUnit (java.util.concurrent.TimeUnit)15 WebSecurity (io.helidon.security.integration.webserver.WebSecurity)13 HealthChecks (io.helidon.health.checks.HealthChecks)12 WebClient (io.helidon.webclient.WebClient)12 GrpcRouting (io.helidon.grpc.server.GrpcRouting)11