in processor/src/main/java/org/apache/commons/weaver/utils/Providers.java [176:188]
private Iterable<P> imposeOrder(final Iterable<P> providers, final Iterable<Class<? extends P>> order) {
final Set<P> result = new LinkedHashSet<>();
for (final Class<? extends P> type : order) {
for (final P provider : providers) {
if (type.isInstance(provider)) {
result.add(provider);
}
}
}
return Collections.unmodifiableSet(result);
}