Skip to content

application.properties completion with custom config mapping #940

Open
@f41thpl4tt

Description

AppConfig.java

package app;

import java.util.Optional;

import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;

@ConfigMapping(prefix = "o-sso")
public interface AppConfig {

    @WithDefault("300")
    int tokenDuration();

    Provider prov1();

    Provider prov2();

    interface Provider {
        @WithDefault("false")
        boolean allowAll();

        @WithDefault("false")
        boolean enabled();

        Optional<String> whiteList();

        Optional<String> cert();

        @WithDefault("ANY")
        Env env();

        Optional<Integer> tokenDuration();

        default boolean isActivated() {
            return enabled() && (whiteList().isPresent() || cert().isPresent());
        }

        enum Env {
            PROD, STAGING, ANY
        }
    }
}

When I try to write in my application.properties file, beginning with 'o-sso', only keys for my first "Provider" appears:

o-sso.prov1.allow-all
o-sso.prov1.cert
o-sso.prov1.enabled
o-sso.prov1.white-list
o-sso.token-duration

What I expected:

o-sso.prov1.allow-all
o-sso.prov1.cert
o-sso.prov1.enabled
o-sso.prov1.white-list
o-sso.prov2.allow-all
o-sso.prov2.cert
o-sso.prov2.enabled
o-sso.prov2.white-list
o-sso.token-duration

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions