private static void resolveAllImplementations() {
        try (ScanResult scanResult = new ClassGraph()
                                             .enableAnnotationInfo()
                                             .enableClassInfo()
                                             .acceptPackages("io.apiman.common.logging")
                                             .scan()) {
            for (ClassInfo loggerFactoryKlazz : scanResult.getClassesWithAnnotation(ApimanLoggerFactory.class)) {
                AnnotationInfo loggerFactoryAnno = loggerFactoryKlazz.getAnnotationInfo(ApimanLoggerFactory.class);
                // Only have 1 required param.
                String name = (String) loggerFactoryAnno.getParameterValues().get(0).getValue();
                try {
                    DELEGATE_FACTORY_MAP.put(name, (IDelegateFactory) loggerFactoryKlazz.loadClass().newInstance());
                } catch (ClassCastException cce) {
                    // Might be some evil classloading reasons that this won't work, so let's just ignore those errors.
                    // System.err.println("Class cast error (likely classloader voodoo)");
                    // cce.printStackTrace();
                }  catch (InstantiationException | IllegalAccessException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }
Registry of Apiman Logger Factories.
<p>
Logger factories will be resolved via the {@link ApimanLoggerFactory} annotation. Any annotated class
<strong>must</strong> implement the {@link IDelegateFactory} interface and be within the
<tt>io.apiman.common.logging</tt> namespace (any sub-package is fine).
<p>
Factories are indexed by their names, and in the case of duplication, 'last in' will win.
<p>
A default (functional but rather rubbish stdout) logger {@link SoutDelegateFactory} is available if none
has been selected by the user. In future this could be handled more intelligently to provide some
auto-detection of which platform Apiman is running on to select a reasonable default.

@author Marc Savy {@literal <marc@rhymewithgravy.com>}
common/logging/core/src/main/java/io/apiman/common/logging/ApimanLoggerFactoryRegistry.java