Hi all I have a couple of questions regarding the current state:
1) In Java 7 we have introduced a ConfigurationProvider, which is necessary, since static methods on interfaces are not supported by Java 7. In Java 8 we introduced the according Configuration.current(). I would in that case deprecate ConfigurationProvider, since its only there for backward compatibility and basically not needed anymore. Agreed? 2) As discussed shortly on our last hangout, I have added ConfigOperator and ConfigQuery which are normal interfaces in Java 7, but usable as functional interfaces in Java 8. This is needed since java.util.function is not available on Java 7. 3) Currently PropertyConverter is currently a functional interface, which basically is nice, but there are a couple of reasons I think, it requires additional methods: a. there is already a comment to add a method on the provider that returns examples of the formats supported, so error messages and exceptions can easily be filled with more explicit information on the formats effectively supported by the converters registered. b. Currently different converters can be priorized by adding a @Priority annotation. Nevertheless the ConfigurationContext has not information about the target type a converter is supported, due to runtime type erasure. Since I think, trying every converter available for each type is very ineffective and error prone, I would suggest an additional method as follows: Class<T> getTargetType(); This would easily allow to manage the different converters by the regarding target type. PropertyConverter instances then would be registered for the target type and all its super-types, except Object. So a converter for MySpecialBigDecimal would similarly also be usable for BigDecimal (which MySpecialBigDecimal extends). WDYT? Anatole Anatole Tresch Platform Strategy & Strategic Projects, KGVX 42 +41 44 334 03 89 (*414 0389)
