This class handles looking up service providers on the class path.
It implements the system described in:
File Specification Under Service Provider. Note that this
interface is very similar to the one they describe which seems to
be missing in the JDK.
public static <T> List<? extends T> providers(Class<T> cls)
Returns an iterator where each element should implement the
interface (or subclass the baseclass) described by cls. The
Classes are found by searching the classpath for service files
named: 'META-INF/services/<fully qualified classname> that list
fully qualified classnames of classes that implement the
service files classes interface. These classes must have
cls - The class/interface to search for providers of.