public static Collection load()

in src/main/java/org/apache/tomee/website/contributors/Contributors.java [53:96]


    public static Collection<Contributor> load(final String contributorsList) throws IOException { // used in page.gsp
        /*
         * Try getting the full list from Github across all repositories
         */
        try {
            final List<Contributor> contributors = new Github().getContributors();
            return sort(contributors);
        } catch (Exception e) {
            log.log(Level.SEVERE, "Unable to fetch contributors from github.com", e);
        }

        /*
         * Fallback to our cached list
         */
        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;
                    contributor = loadStatic(mail);
                    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, Comparator.comparing(Contributor::getName));
        return contributors;
    }