package org.jggug.hudson.plugins.gcrawler.crawlers; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import org.jggug.hudson.plugins.gcrawler.GrailsProjectInfo; public class GrailsCrawlerTaskService { private List<Future<GrailsProjectInfo>> futures = new ArrayList<Future<GrailsProjectInfo>>(); private ExecutorService service = Executors.newFixedThreadPool(10); public void submit(GrailsProjectCrawlerTask crawlerTask) { futures.add(service.submit(crawlerTask)); } public List<GrailsProjectInfo> getResults() throws InterruptedException, ExecutionException { List<GrailsProjectInfo> result = new ArrayList<GrailsProjectInfo>(); for (Future<GrailsProjectInfo> future : futures) { result.add(future.get()); } return result; } }