public void load() throws IOException { checkNotInit("load"); try { if (baseURL == null || StringUtils.isEmpty(baseURL.toString())) { throw new IllegalStateException("no baseURL defined in " + this); } URL definitionURL = MojoHelper.getUrl(getBaseURL(), REPOSITORY_DEFINITION_FILE); if (licenses != null) { licenses.clear(); } else { licenses = new ArrayList<License>(); } if (!checkExists(definitionURL)) { throw new IllegalArgumentException( "no licenses.properties found with url [" + definitionURL + "] for resolver " + this); } Properties p = new Properties(); p.load(definitionURL.openStream()); for (Entry<Object, Object> entry : p.entrySet()) { String licenseName = (String) entry.getKey(); licenseName = licenseName.trim().toLowerCase(); URL licenseBaseURL = MojoHelper.getUrl(baseURL, licenseName); License license = new License(); license.setName(licenseName); license.setBaseURL(licenseBaseURL); String licenseDescription = (String) entry.getValue(); Matcher matcher = LICENSE_DESCRIPTION_PATTERN.matcher(licenseDescription); String licenseFile; String headerFile; if (matcher.matches()) { licenseDescription = matcher.group(1).trim(); licenseFile = matcher.group(2).trim(); headerFile = matcher.group(3).trim(); } else { licenseFile = License.LICENSE_CONTENT_FILE; headerFile = License.LICENSE_HEADER_FILE; } URL licenseFileURL = getFileURL(license, licenseFile); license.setLicenseURL(licenseFileURL); URL headerFileURL = getFileURL(license, headerFile); license.setHeaderURL(headerFileURL); license.setDescription(licenseDescription); if (LOG.isInfoEnabled()) { LOG.info("register " + license.getDescription()); } if (LOG.isDebugEnabled()) { LOG.debug(license); } licenses.add(license); } licenses = Collections.unmodifiableList(licenses); } finally { // mark repository as available init = true; } }