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();
@Default("60")
int getConnectionTimeout();
@Default("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=45
For 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-2018 Sabre GLBL Inc.
Code is under the MIT license.