All Versions
Latest Version
Avg Release Cycle
123 days
Latest Release
1870 days ago

Changelog History

  • v0.9.41 Changes

    April 30, 2019

    ๐Ÿ›  Fixed a bad merge

  • v0.9.5 Changes

    March 17, 2020

    ๐Ÿ›  This version is just a bugfix to follow symbolic links when reloading a file (#65) and update versions for the various libraries (like kotlin to 1.3.70)

  • v0.9.4 Changes

    April 26, 2019

    ๐Ÿ›  This one is composed mostly by bugfixes and rework on how the tests are done and finally getting rid of Spek 1 which caused a lot of pain when trying to debug things, IDE exceptions etc...

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ›  Fixed #57
    • ๐Ÿ›  Fixed a bug where the equality of ConfigObjects wouldn't be true at some point
    • โš  Now values aren't going to be overridden when a property has a root and children at the same time, a warning will be shown (it was already showing a warning if the root was direct)
    • Now nulls won't be cached in getOrNull inside a CachedConfigProvider
    • โž• Added support for lists inside properties objects. (CATCH: The order of the items in the list will be unpredictable, so don't rely on this if you need a sorted list)


    ๐Ÿ‘• Now instead of Spek 1, Kotlintest is being used (latest version). With this rework I had to think better how to test and increase the test coverage. Also every file has its test file equivalent which was not true before, basically everything was a Functional test!

  • v0.9.3 Changes

    March 05, 2019

    ๐Ÿš€ In this release a huge rework of the source code has been done. Some methods have been removed and some have been added from the API.

    ๐Ÿ“œ 1. Now it supports all kind of complex objects and maps. Everything will be transformed for you (not supported in properties, system properties or environment variables as the process to parse that into a root ConfigObject can be different in each case, you can always implement your own loader to do this). Some examples:

    1. List<List<Int>>
    2. Map<String, Map<Int, List<String>>> ๐Ÿ“œ 2. The signature for the Parser has changed: context: ConfigContext, value: ConfigObject, typeStructure: TypeStructure.
      ๐Ÿ“œ Now it will receive an object which is the context (similar to Gson for example), where you will be able to parse a subtype or a property from your complex object. A new object has been introduced which is the TypeStructure this will hold the structure of the generic type of your object, for example from List<List<Int>>, the type structure will be this:
    3. type: List<List> and generics: List
    4. type: List and generics: Int ๐Ÿšš 3. Removed methods from the ConfigProvider interface:
    5. get(name: String, type: Class<T>, default: T?): T
    6. getOrNull(name: String, type: Class<T>, default: T?): T? ๐Ÿ‘ 4. Added data class support, now data classes will be instantiated like if they were interfaces but not giving back a proxy but an actual instance of the class.

    ๐Ÿšš Those two methods have been removed in favor of the same method with the change of type, type: Type. These methods should be better used with the extension functions get<List<String>>() as they will hide for you the work of transforming a generic into a Type object.

  • v0.9.0 Changes

    August 18, 2018

    ๐Ÿ”€ Now SystemPropertyConfigLoader and EnvironmentConfigLoader extends DefaultConfigLoader so merges and binding will work with them.

    There is one caveat, that is the SystemProperty actually has something like:


    โš  Which is perfectly viable in properties. But when translating that to an object it cannot be represented (for example you cannot do that in JSON). If that happens a warning will be emitted and it will only happen with a java property in the SystemPropertyConfigLoader (or if you do the wrong thing in a properties file)

  • v0.8.5 Changes

    March 07, 2018
    • โž• Added sources for:
      • Bitbucket
      • Github
      • String
      • StringRotation (list of strings that will be rotated on reload)
    • Revamped ByteBuddyBinder and now it holds a cache so classes won't be recompiled everytime
    • โž• Added merge to ConfigLoader so you can merge before adding it to a provider.
    • Reusable TimedReloadStrategy
    • Auth in URLConfigSource
    • Code cleaning up
  • v0.8

    October 29, 2017
  • v0.7.1

    August 05, 2017
  • v0.7.0 Changes

    August 05, 2017
    • Nos lists can contain complex objects and the library will handle them all
    • ๐Ÿ›  Bugfixes and code improvements
  • v0.6.0

    July 11, 2017