in src/main/java/org/apache/tomee/website/Contributors.java [77:111]
public static Contributor loadGravatar(final WebTarget target, final String input) throws IOException {
final String[] strings = input.split(" *\\| *");
final boolean committer = strings[0].endsWith("*");
final String mail = committer ? strings[0].substring(0, strings[0].length() - 1) : strings[0];
final String hash = gravatarHash(mail);
final Response gravatar = target.path(hash + ".json").request(MediaType.APPLICATION_JSON_TYPE).get();
if (gravatar.getStatus() != HttpsURLConnection.HTTP_OK) {
System.err.println("[ERROR] No gravatar for " + mail);
return null;
}
final Contributor contributor = ofNullable(gravatar.readEntity(Gravatar.class).getEntry())
.map(e -> e[0])
.map(e -> Contributor.builder()
.id(e.getId())
.name(
ofNullable(e.getName())
.map(n -> ofNullable(n.getFormatted()).orElse(ofNullable(n.getGivenName()).orElse("") + ofNullable(n.getFamilyName()).orElse("")))
.orElseGet(() -> ofNullable(e.getDisplayName()).orElse(ofNullable(e.getPreferredUsername()).orElse(mail))))
.description(e.getAboutMe())
.link(
Stream.concat(
ofNullable(e.getAccounts())
.map(a -> Stream.of(a).map(l -> Link.builder().name(l.getShortname()).url(l.getUrl()).build()).collect(toList()))
.orElse(emptyList()).stream(),
ofNullable(e.getUrls())
.map(a -> Stream.of(a).map(l -> Link.builder().name(l.getTitle()).url(l.getValue()).build()).collect(toList()))
.orElse(emptyList()).stream())
.collect(toList()))
.gravatar("http://www.gravatar.com/avatar/" + hash + "?s=140")
.build())
.orElse(Contributor.builder().name(mail).id(mail).build());
contributor.setCommitter(committer);
ofNullable(contributor.getLink()).ifPresent(l -> Collections.sort(l, (o1, o2) -> o1.getName().compareTo(o2.getName())));
return contributor;
}