public static Contributor loadGravatar()

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;
    }