// Create a contribution scanner
ContributionScanner scanner = null;
if (scanner == null) {
try {
if ("file".equals(contributionURL.getProtocol()) && new File(contributionURL.toURI()).isDirectory()) {
scanner = new DirectoryContributionScanner();
} else {
scanner = new JarContributionScanner();
}
} catch (URISyntaxException e) {
throw new ContributionReadException(e);