in src/main/java/org/apache/tomee/website/Contributors.java [113:150]
public static Collection<Contributor> load(final String contributorsList) throws IOException { // used in page.gsp
final WebTarget target = ClientBuilder.newClient().register(new JohnzonProvider()).target(GRAVATAR_BASE);
final List<Contributor> contributors = new ArrayList<>();
final ExecutorService es = Executors.newFixedThreadPool(16);
final String rawList = contributorsList.substring(contributorsList.indexOf("<pre>") + "<pre>".length(), contributorsList.indexOf("</pre>"));
try (final BufferedReader reader = new BufferedReader(new StringReader(rawList))) {
String line;
while ((line = reader.readLine()) != null) {
line = line.trim();
if (line.isEmpty() || line.startsWith("#")) {
continue;
}
final String mail = line;
es.submit(() -> {
Contributor contributor = null;
try {
contributor = singleLoad(target, mail);
} catch (final IOException e) {
throw new IllegalStateException(e);
}
if (contributor != null) {
synchronized (contributors) {
contributors.add(contributor);
}
}
});
}
}
es.shutdown();
try {
es.awaitTermination(30, TimeUnit.MINUTES);
} catch (final InterruptedException e) {
Thread.interrupted();
return Collections.emptyList();
}
Collections.sort(contributors, (o1, o2) -> o1.name.compareTo(o2.id));
return contributors;
}