conf4j is a library which allows accessing configuration data in object-oriented, type-safe manner.
In conf4j configuration is represented as an interface or abstract class optionally annotated with conf4j annotations.
@Key("connection")
public interface ConnectionConfiguration {
String getUrl();
String getUser();
String getPassword();
@DefaultValue("60")
int getConnectionTimeout();
@DefaultValue("30")
int getReadTimeout();
}Then a configuration instance is created and bound to the value source by the configuration factory.
ConfigurationSource source = new PropertiesConfigurationSource("configuration.properties");
ConfigurationFactory factory = new JdkProxyStaticConfigurationFactory();
ConnectionConfiguration configuration = factory.createConfiguration(ConnectionConfiguration.class, source);Once the configuration instance is created you can access the configuration values via getters:
String url = configuration.getUrl();
int connectionTimeout = configuration.getConnectionTimeout();Example configuration.properties is as follows:
connection.url=https://github.com/SabreOss/conf4j
connection.user=john
connection.password=secret
connection.connectionTimeout=45For more information how to use conf4j please read Conf4j User's Guide and check conf4j-examples directory.
We accept pull request via GitHub. Here are some guidelines which will make applying PRs easier for us:
- No tabs. Please use spaces for indentation.
- Respect the code style.
- Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
- Provide JUnit tests for your changes and make sure they don't break anything by running
mvn clean verify.
See CONTRIBUTING document for more details.
Copyright 2017 Sabre GLBL Inc.
Code is under the MIT license.