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 aCachedConfigProvider
- โ 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)
Rework
๐ 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:
List<List<Int>>
Map<String, Map<Int, List<String>>>
๐ 2. The signature for theParser
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 theTypeStructure
this will hold the structure of the generic type of your object, for example fromList<List<Int>>
, the type structure will be this:- type: List<List> and generics: List
- type: List and generics: Int
๐ 3. Removed methods from the
ConfigProvider
interface: get(name: String, type: Class<T>, default: T?): T
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 functionsget<List<String>>()
as they will hide for you the work of transforming a generic into aType
object. -
v0.9.0 Changes
August 18, 2018๐ Now
SystemPropertyConfigLoader
andEnvironmentConfigLoader
extendsDefaultConfigLoader
so merges and binding will work with them.There is one caveat, that is the SystemProperty actually has something like:
a=1 a.b=2
โ 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
- โ Added sources for:
-
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