/conf4j

Conf4j Type-safe Configuration Library for Java

Primary LanguageJavaMIT LicenseMIT

Conf4j - Type-safe Configuration Library for Java

Build Status Maven Central

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.

Contributing

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.

License

Copyright 2017-2018 Sabre GLBL Inc.

Code is under the MIT license.