Updates the contributors.adoc page by using data retrieved via GitHub API
diff --git a/src/main/java/org/apache/tomee/website/Contributors.java b/src/main/java/org/apache/tomee/website/Contributors.java
index fb4d0bf..f529506 100755
--- a/src/main/java/org/apache/tomee/website/Contributors.java
+++ b/src/main/java/org/apache/tomee/website/Contributors.java
@@ -18,100 +18,38 @@
 
 import lombok.Builder;
 import lombok.Data;
-import org.apache.johnzon.jaxrs.JohnzonProvider;
 
-import javax.net.ssl.HttpsURLConnection;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.StringReader;
-import java.io.UnsupportedEncodingException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
-import java.util.stream.Stream;
-
-import static java.util.Collections.emptyList;
-import static java.util.Optional.ofNullable;
-import static java.util.stream.Collectors.toList;
 
 public class Contributors {
-    private static final String GRAVATAR_BASE = "http://fr.gravatar.com/";
-
     private Contributors() {
         // no-op
     }
 
-    public static Contributor singleLoad(final WebTarget target, final String input) throws IOException {
-        try {
-            return ofNullable(loadGravatar(target, input)).orElse(loadStatic(input));
-        } catch (Exception e) {
-            e.printStackTrace();
-            return loadStatic(input);
-        }
-    }
-
     public static Contributor loadStatic(final String input) {
         final String[] strings = input.split(" *\\| *");
-        final String mail = strings[0].replaceAll("\\*$", "");
-        final boolean committer = strings[0].endsWith("*");
-        final String name = strings.length > 1 ? strings[1] : mail.replaceAll("@.*", "");
+        final String name = strings.length > 0 ? strings[0] : "";
+        final String github = strings.length > 1 ? strings[1] : "";
         final String picture = strings.length > 2 ? strings[2] : "../img/noimg.png";
         return Contributor.builder()
                 .name(name)
-                .id(mail)
-                .committer(committer)
-                .gravatar(picture)
+                .id(name)
+                .avatar(picture)
+                .github(github)
                 .build();
     }
 
-    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;
-    }
-
     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>"));
@@ -125,15 +63,9 @@
                 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);
-                        }
+                    contributor = loadStatic(mail);
+                    synchronized (contributors) {
+                        contributors.add(contributor);
                     }
                 });
             }
@@ -145,78 +77,17 @@
             Thread.interrupted();
             return Collections.emptyList();
         }
-        Collections.sort(contributors, (o1, o2) -> o1.name.compareTo(o2.id));
+        Collections.sort(contributors, Comparator.comparing(o -> o.name));
         return contributors;
     }
 
-    private static String gravatarHash(final String mail) {
-        try {
-            final MessageDigest md = MessageDigest.getInstance("MD5");
-            byte[] cp1252s = md.digest(mail.getBytes("CP1252"));
-            final StringBuilder sb = new StringBuilder();
-            for (final byte anArray : cp1252s) {
-                sb.append(Integer.toHexString((anArray & 0xFF) | 0x100).substring(1, 3));
-            }
-            return sb.toString();
-        } catch (final NoSuchAlgorithmException | UnsupportedEncodingException e) {
-            throw new IllegalStateException(e);
-        }
-    }
-
-    @Data
-    @Builder
-    public static class Link {
-        private String name;
-        private String url;
-    }
-
     @Data
     @Builder
     public static class Contributor {
         private String id;
         private boolean committer;
         private String name;
-        private String description;
-        private String gravatar;
-        private List<Link> link;
+        private String github;
+        private String avatar;
     }
-
-    @Data
-    public static class GravatarName {
-        private String formatted;
-        private String givenName;
-        private String familyName;
-    }
-
-    @Data
-    public static class GravatarUrl {
-        private String value;
-        private String title;
-    }
-
-    @Data
-    public static class GravatarAccount {
-        private String shortname;
-        private String url;
-    }
-
-    @Data
-    public static class Gravatar {
-        private GravatarEntry[] entry;
-    }
-
-    @Data
-    public static class GravatarEntry {
-        private String id;
-        private String hash;
-        private String aboutMe;
-        private String requestHash;
-        private String profileUrl;
-        private String preferredUsername;
-        private String thumbnailUrl;
-        private GravatarName name;
-        private GravatarUrl[] urls;
-        private GravatarAccount[] accounts;
-        private String displayName;
-    }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/apache/tomee/website/GitHubContributors.java b/src/main/java/org/apache/tomee/website/GitHubContributors.java
new file mode 100644
index 0000000..075a0e1
--- /dev/null
+++ b/src/main/java/org/apache/tomee/website/GitHubContributors.java
@@ -0,0 +1,74 @@
+package org.apache.tomee.website;
+
+import lombok.Data;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.tomitribe.util.IO;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+public class GitHubContributors {
+
+    protected static final String BASE_URL = "https://api.github.com/repos/apache/tomee/contributors";
+
+    /*
+     * Can be used to retrieve an up 2 date list of contributors via the GitHub API
+     * The output of this class can be pasted into /src/main/jbake/content/community/contributors.adoc
+     */
+    public static void main(String[] args) throws IOException {
+
+        final List<Contributor> contributorList = GitHubContributors.fillContributors();
+
+        for (Contributor c : contributorList) {
+            System.out.println(c);
+        }
+    }
+
+
+    public static List<Contributor> fillContributors() throws IOException {
+        final List<Contributor> contributorList = new ArrayList<>();
+
+        boolean hasPagesLeft = true;
+
+        int currentPage = 1;
+        while (hasPagesLeft) {
+            final String content = IO.slurp(new URL(BASE_URL + "?per_page=100&page=" + currentPage));
+            final JSONArray contributors = new JSONArray(content);
+
+            if (contributors.length() == 0) {
+                hasPagesLeft = false;
+            } else {
+                for (int i = 0; i < contributors.length(); i++) {
+
+                    JSONObject c = contributors.getJSONObject(i);
+
+                    contributorList.add(new Contributor(
+                            c.getString("id"),
+                            c.getString("login"),
+                            c.getString("avatar_url"),
+                            c.getString("html_url"),
+                            c.getLong("contributions")));
+                }
+            }
+            currentPage++;
+        }
+        return contributorList;
+    }
+
+    @Data
+    public static class Contributor {
+        private final String id;
+        private final String name;
+        private final String avatar;
+        private final String url;
+        private final long contributions;
+
+        @Override
+        public String toString() {
+            return name + " | " + url + " | " + avatar;
+        }
+    }
+}
diff --git a/src/main/jbake/content/community/contributors.adoc b/src/main/jbake/content/community/contributors.adoc
index 1a700de..aa75236 100755
--- a/src/main/jbake/content/community/contributors.adoc
+++ b/src/main/jbake/content/community/contributors.adoc
@@ -1,35 +1,113 @@
-= Wall of fame
+= Wall of Fame - Contributors
 :jbake-date: 2016-03-16
 :jbake-type: contributors
 :jbake-status: published
 
 ----
-adc@apache.org* | Alan Cabrera | https://twitter.com/maguro/profile_image?size=bigger
-ammulder@apache.org* | Aaron Mulder | ../img/ammulder.png
-agumbrecht@tomitribe.com*
-dain@iq80.com*
-dblevins@apache.org*
-djencks@apache.org* | David Jencks
-dsh@apache.org* | Daniel Stefan Haischt | https://twitter.com/uebermodean/profile_image?size=bigger
-gawor@apache.org* | Jarek Gawor | https://twitter.com/jgawor/profile_image?size=bigger
-gdamour@apache.org* | Gianny Damour | ../img/gdamour.jpg
-genspring@apache.org* | Lin Quan Jiang | ../img/genspring.jpg
-hogstrom@apache.org* | Matt Richard Hogstrom | https://twitter.com/hogstrom/profile_image?size=bigger
-jgallimore@apache.org* | Jonathan Gallimore | https://twitter.com/jongallimore/profile_image?size=bigger
-jgenender@apache.org* | Jeff Genender | ../img/jgenender.jpg
-jlaskowski@apache.org* | Jacek Laskowski | https://twitter.com/jaceklaskowski/profile_image?size=bigger
-jlmonteiro@apache.org* | Jean-Louis Monteiro | https://twitter.com/JLouisMonteiro/profile_image?size=bigger
-jvanzyl@apache.org*
-jwhitlock@apache.org*
-kevan@apache.org* | Kevan Lee Miller | https://twitter.com/kevanmiller/profile_image?size=bigger
-kmalhi@apache.org* | Karan Singh Malhi | https://twitter.com/KrnMal/profile_image?size=bigger
-lajos@apache.org* | Lajos Moczar
-manugeorge@apache.org* | Manu George | ../img/manugeorge.jpg
-mnour@apache.org* | Mohammad Nour El-Din | ../img/mnour.jpg
-rickmcguire@apache.org* | Rick McGuire | ../img/rickmcguire.jpg
-rmannibucau@gmail.com*
-struberg@yahoo.de*
-tveronezi@apache.org*
-vishwanathk@apache.org* | Vishwanath | https://twitter.com/stratwine/profile_image?size=bigger
-xuhaihong@apache.org* | Haihong Xu | ../img/xuhaihong.jpg
+rmannibucau | https://github.com/rmannibucau | https://avatars.githubusercontent.com/u/1249546?v=4
+dblevins | https://github.com/dblevins | https://avatars.githubusercontent.com/u/94926?v=4
+jgallimore | https://github.com/jgallimore | https://avatars.githubusercontent.com/u/548624?v=4
+AndyGee | https://github.com/AndyGee | https://avatars.githubusercontent.com/u/2536412?v=4
+jeanouii | https://github.com/jeanouii | https://avatars.githubusercontent.com/u/1233474?v=4
+tveronezi | https://github.com/tveronezi | https://avatars.githubusercontent.com/u/1918442?v=4
+dain | https://github.com/dain | https://avatars.githubusercontent.com/u/58298?v=4
+jaceklaskowski | https://github.com/jaceklaskowski | https://avatars.githubusercontent.com/u/62313?v=4
+radcortez | https://github.com/radcortez | https://avatars.githubusercontent.com/u/5796305?v=4
+Daniel-Dos | https://github.com/Daniel-Dos | https://avatars.githubusercontent.com/u/8139890?v=4
+struberg | https://github.com/struberg | https://avatars.githubusercontent.com/u/79310?v=4
+djencks | https://github.com/djencks | https://avatars.githubusercontent.com/u/569822?v=4
+otaviojava | https://github.com/otaviojava | https://avatars.githubusercontent.com/u/863011?v=4
+cesarhernandezgt | https://github.com/cesarhernandezgt | https://avatars.githubusercontent.com/u/1454523?v=4
+kmalhi | https://github.com/kmalhi | https://avatars.githubusercontent.com/u/5103199?v=4
+ivanjunckes | https://github.com/ivanjunckes | https://avatars.githubusercontent.com/u/2260551?v=4
+brunobat | https://github.com/brunobat | https://avatars.githubusercontent.com/u/2318030?v=4
+j4fm | https://github.com/j4fm | https://avatars.githubusercontent.com/u/6817157?v=4
+rzo1 | https://github.com/rzo1 | https://avatars.githubusercontent.com/u/13417392?v=4
+jgawor | https://github.com/jgawor | https://avatars.githubusercontent.com/u/796079?v=4
+stratwine | https://github.com/stratwine | https://avatars.githubusercontent.com/u/696945?v=4
+doychin | https://github.com/doychin | https://avatars.githubusercontent.com/u/7131283?v=4
+danielsoro | https://github.com/danielsoro | https://avatars.githubusercontent.com/u/350841?v=4
+emecas | https://github.com/emecas | https://avatars.githubusercontent.com/u/849502?v=4
+cchacin | https://github.com/cchacin | https://avatars.githubusercontent.com/u/292938?v=4
+cicekhayri | https://github.com/cicekhayri | https://avatars.githubusercontent.com/u/143997?v=4
+exabrial | https://github.com/exabrial | https://avatars.githubusercontent.com/u/1392297?v=4
+tandraschko | https://github.com/tandraschko | https://avatars.githubusercontent.com/u/2485545?v=4
+ShermanMarshall | https://github.com/ShermanMarshall | https://avatars.githubusercontent.com/u/10781839?v=4
+eapjunior | https://github.com/eapjunior | https://avatars.githubusercontent.com/u/20850916?v=4
+gabrielbussolo | https://github.com/gabrielbussolo | https://avatars.githubusercontent.com/u/4117683?v=4
+vrossellotravelc | https://github.com/vrossellotravelc | https://avatars.githubusercontent.com/u/45101500?v=4
+mnour | https://github.com/mnour | https://avatars.githubusercontent.com/u/153299?v=4
+josehenriqueventura | https://github.com/josehenriqueventura | https://avatars.githubusercontent.com/u/2358940?v=4
+CristianDVN | https://github.com/CristianDVN | https://avatars.githubusercontent.com/u/14073354?v=4
+rmcguinness | https://github.com/rmcguinness | https://avatars.githubusercontent.com/u/906421?v=4
+SvetlinZarev-SAP | https://github.com/SvetlinZarev-SAP | https://avatars.githubusercontent.com/u/43135961?v=4
+uncommon-design | https://github.com/uncommon-design | https://avatars.githubusercontent.com/u/53859462?v=4
+jgenender | https://github.com/jgenender | https://avatars.githubusercontent.com/u/643609?v=4
+marcoantoniobferreira | https://github.com/marcoantoniobferreira | https://avatars.githubusercontent.com/u/23589475?v=4
+svenruppert | https://github.com/svenruppert | https://avatars.githubusercontent.com/u/2665330?v=4
+gdiazs | https://github.com/gdiazs | https://avatars.githubusercontent.com/u/2397243?v=4
+BogdanStirbat | https://github.com/BogdanStirbat | https://avatars.githubusercontent.com/u/2213741?v=4
+alexferreiradev | https://github.com/alexferreiradev | https://avatars.githubusercontent.com/u/8191965?v=4
+mpredli01 | https://github.com/mpredli01 | https://avatars.githubusercontent.com/u/4043260?v=4
+sercheo87 | https://github.com/sercheo87 | https://avatars.githubusercontent.com/u/1036090?v=4
+Croway | https://github.com/Croway | https://avatars.githubusercontent.com/u/34543311?v=4
+dineshkumarg | https://github.com/dineshkumarg | https://avatars.githubusercontent.com/u/13047948?v=4
+gerdogdu | https://github.com/gerdogdu | https://avatars.githubusercontent.com/u/1370429?v=4
+robinsonvs | https://github.com/robinsonvs | https://avatars.githubusercontent.com/u/8331918?v=4
+cotnic | https://github.com/cotnic | https://avatars.githubusercontent.com/u/10333974?v=4
+jrxxjr | https://github.com/jrxxjr | https://avatars.githubusercontent.com/u/8740736?v=4
+davidsalter | https://github.com/davidsalter | https://avatars.githubusercontent.com/u/32864282?v=4
+gmcdonald | https://github.com/gmcdonald | https://avatars.githubusercontent.com/u/287517?v=4
+fost14oct-zz | https://github.com/fost14oct-zz | https://avatars.githubusercontent.com/u/36649784?v=4
+cassunde | https://github.com/cassunde | https://avatars.githubusercontent.com/u/3828140?v=4
+weverthon-medeiros | https://github.com/weverthon-medeiros | https://avatars.githubusercontent.com/u/14115193?v=4
+puneethps | https://github.com/puneethps | https://avatars.githubusercontent.com/u/16502032?v=4
+carljmosca | https://github.com/carljmosca | https://avatars.githubusercontent.com/u/215651?v=4
+dheffelfinger | https://github.com/dheffelfinger | https://avatars.githubusercontent.com/u/13482727?v=4
+gacsnic | https://github.com/gacsnic | https://avatars.githubusercontent.com/u/24616597?v=4
+chongma | https://github.com/chongma | https://avatars.githubusercontent.com/u/6253322?v=4
+nishantraut | https://github.com/nishantraut | https://avatars.githubusercontent.com/u/10669557?v=4
+davidromero | https://github.com/davidromero | https://avatars.githubusercontent.com/u/2968138?v=4
+fredster33 | https://github.com/fredster33 | https://avatars.githubusercontent.com/u/64927044?v=4
+pavelsmajda | https://github.com/pavelsmajda | https://avatars.githubusercontent.com/u/24811669?v=4
+rhuan080 | https://github.com/rhuan080 | https://avatars.githubusercontent.com/u/10210672?v=4
+ferdisn | https://github.com/ferdisn | https://avatars.githubusercontent.com/u/28998445?v=4
+bitcod3r | https://github.com/bitcod3r | https://avatars.githubusercontent.com/u/4358449?v=4
+ivannov | https://github.com/ivannov | https://avatars.githubusercontent.com/u/664730?v=4
+whitlockjc | https://github.com/whitlockjc | https://avatars.githubusercontent.com/u/98899?v=4
+jchemile | https://github.com/jchemile | https://avatars.githubusercontent.com/u/7410390?v=4
+juneau001 | https://github.com/juneau001 | https://avatars.githubusercontent.com/u/121002?v=4
+patriciauz | https://github.com/patriciauz | https://avatars.githubusercontent.com/u/20784387?v=4
+sendilkumarn | https://github.com/sendilkumarn | https://avatars.githubusercontent.com/u/12471122?v=4
+breakponchito | https://github.com/breakponchito | https://avatars.githubusercontent.com/u/279375?v=4
+dalexandrov | https://github.com/dalexandrov | https://avatars.githubusercontent.com/u/2016949?v=4
+dependabot[bot] | https://github.com/apps/dependabot | https://avatars.githubusercontent.com/in/29110?v=4
+aboullaite | https://github.com/aboullaite | https://avatars.githubusercontent.com/u/2836850?v=4
+avermeer | https://github.com/avermeer | https://avatars.githubusercontent.com/u/17863217?v=4
+Dexmaster | https://github.com/Dexmaster | https://avatars.githubusercontent.com/u/6061000?v=4
+brettporter | https://github.com/brettporter | https://avatars.githubusercontent.com/u/49108?v=4
+cbos | https://github.com/cbos | https://avatars.githubusercontent.com/u/255404?v=4
+danielshahaf | https://github.com/danielshahaf | https://avatars.githubusercontent.com/u/2141904?v=4
+deki | https://github.com/deki | https://avatars.githubusercontent.com/u/858827?v=4
+kaminfeuer | https://github.com/kaminfeuer | https://avatars.githubusercontent.com/u/7949105?v=4
+gerwinjansen | https://github.com/gerwinjansen | https://avatars.githubusercontent.com/u/13243946?v=4
+HillmerCh | https://github.com/HillmerCh | https://avatars.githubusercontent.com/u/29781653?v=4
+jimmycasey | https://github.com/jimmycasey | https://avatars.githubusercontent.com/u/5089723?v=4
+JuanMorenoDeveloper | https://github.com/JuanMorenoDeveloper | https://avatars.githubusercontent.com/u/7319391?v=4
+kaloyanspiridonov | https://github.com/kaloyanspiridonov | https://avatars.githubusercontent.com/u/42994528?v=4
+katya-stoycheva | https://github.com/katya-stoycheva | https://avatars.githubusercontent.com/u/24268910?v=4
+mawiesne | https://github.com/mawiesne | https://avatars.githubusercontent.com/u/20473513?v=4
+revmischa | https://github.com/revmischa | https://avatars.githubusercontent.com/u/245131?v=4
+scriptmonkey | https://github.com/scriptmonkey | https://avatars.githubusercontent.com/u/1366409?v=4
+sebfz1 | https://github.com/sebfz1 | https://avatars.githubusercontent.com/u/1717144?v=4
+suyogbarve | https://github.com/suyogbarve | https://avatars.githubusercontent.com/u/1817914?v=4
+SvetlinZarev | https://github.com/SvetlinZarev | https://avatars.githubusercontent.com/u/1794797?v=4
+kakawait | https://github.com/kakawait | https://avatars.githubusercontent.com/u/275609?v=4
+cocorossello | https://github.com/cocorossello | https://avatars.githubusercontent.com/u/3096556?v=4
+violetagg | https://github.com/violetagg | https://avatars.githubusercontent.com/u/696661?v=4
+pendor | https://github.com/pendor | https://avatars.githubusercontent.com/u/209193?v=4
+javalenjara | https://github.com/javalenjara | https://avatars.githubusercontent.com/u/51468684?v=4
+mayens | https://github.com/mayens | https://avatars.githubusercontent.com/u/233983?v=4
+t4fm | https://github.com/t4fm | https://avatars.githubusercontent.com/u/47995607?v=4
+yenerm | https://github.com/yenerm | https://avatars.githubusercontent.com/u/715370?v=4
 ----
diff --git a/src/main/jbake/templates/contributors.gsp b/src/main/jbake/templates/contributors.gsp
index c4049d8..8e8d40f 100755
--- a/src/main/jbake/templates/contributors.gsp
+++ b/src/main/jbake/templates/contributors.gsp
@@ -16,23 +16,18 @@
         </div>
         <div class="row">
             <div class="col-md-12 contributors">
-              <div class="text-center" style="padding-bottom: 2em;">A <i class="fa fa-star-o" style="color:#F38F24;"></i> means the contributor is also a committer.</div>
+              <div class="text-center" style="padding-bottom: 2em;">We want to thank the following individuals for contributing to Apache TomEE. An up to date contributor list can be found <a href="https://github.com/apache/tomee/graphs/contributors">here</a>. The current list of committers can be found <a href="https://projects.apache.org/committee.html?tomee">here</a>.</div>
               <ul>
                 <%
                     org.apache.tomee.website.Contributors.load(content.body).each {contributor ->
                 %>
                   <div class="col-sm-4">
                     <div class="photo col-sm-5">
-                      <img alt="${contributor.name}" src="${contributor.gravatar}" style="width:140px">
-                      <% if (contributor.committer){ %><i class="pull-right fa fa-star-o" style="color:#F38F24;"></i><% } %>
+                      <img src="${contributor.avatar}" style="width:140px">
                     </div>
                     <div class="col-sm-7">
-                      <h3 class="contributor-name" style="font-size:1.4em;">${contributor.name}</h3>
+                        <h5 class="contributor-name" style="font-size:1.0em;"><a href="${contributor.github}">${contributor.name}</a></h5>
                       <p></p>
-                      <ul class="list-inline">
-                      <%contributor.link.each {l ->%>
-                      <li><a href="${l.url}">${l.name}</a></li>
-                      <%}%>
                     </div>
                   </div>
               <% } %>