@Override
    public List<Detector> getDetectors() {
        if (loader != null && loader.isDynamic()) {
            List<Detector> detectors = loader.loadDynamicServiceProviders(Detector.class);
            if (detectors.size() > 0) {
                detectors.addAll(super.getDetectors());
                return detectors;
            } else {
                return super.getDetectors();
            }
        } else {
            return super.getDetectors();
        }
    }
Finds all statically loadable detectors and sort the list by name,
rather than discovery order. Detectors are used in the given order,
so put the Tika parsers last so that non-Tika (user supplied)
parsers can take precedence.
<p>
If an {@link OverrideDetector} is loaded, it takes precedence over
all other detectors.

@param loader service loader
@return ordered list of statically loadable detectors
tika-core/src/main/java/org/apache/tika/detect/DefaultDetector.java