in context/src/main/java/org/netbeans/html/context/spi/Contexts.java [84:123]
public static boolean fillInByProviders(Class<?> requestor, Contexts.Builder cb) {
boolean found = false;
ClassLoader l;
try {
l = requestor.getClassLoader();
} catch (SecurityException ex) {
l = null;
}
ClassSet classes = new ClassSet(null);
for (Provider cp : ServiceLoader.load(Provider.class, l)) {
if (!classes.add(cp.getClass())) {
continue;
}
cp.fillContext(cb, requestor);
found = true;
}
try {
for (Provider cp : ServiceLoader.load(Provider.class, Provider.class.getClassLoader())) {
if (!classes.add(cp.getClass())) {
continue;
}
cp.fillContext(cb, requestor);
found = true;
}
} catch (SecurityException ex) {
if (!found) {
throw ex;
}
}
if (!found) {
for (Provider cp : ServiceLoader.load(Provider.class)) {
if (!classes.add(cp.getClass())) {
continue;
}
cp.fillContext(cb, requestor);
found = true;
}
}
return found;
}