usage of jdk-serviceloader

usage of jdk-serviceloader for resolving providerfactories (replaceable
factories)
dependencies added