in src/main/java/org/apache/maven/plugin/doap/DoapMojo.java [1705:1784]
private void writeASFext(XMLWriter writer, MavenProject project) {
if (!asfExtOptions.isIncluded()) {
return;
}
DoapUtil.writeComment(writer, "ASF extension.");
// asfext:pmc
String pmc = DoapUtil.interpolate(asfExtOptions.getPmc(), project, settings);
if (pmc != null && !pmc.isEmpty()) {
DoapUtil.writeRdfResourceElement(writer, asfExtOptions.getXmlnsPrefix(), "pmc", pmc);
} else {
messages.addMessage(new String[] {"asfExtOptions", "pmc"}, null, UserMessages.REQUIRED_BY_ASF);
}
// asfext:name
String name = DoapUtil.interpolate(asfExtOptions.getName(), project, settings);
if (name != null && !name.isEmpty()) {
if (!name.toLowerCase(Locale.ENGLISH).trim().startsWith("apache")) {
name = "Apache " + name;
}
DoapUtil.writeElement(writer, asfExtOptions.getXmlnsPrefix(), "name", name);
} else {
messages.addMessage(new String[] {"asfExtOptions", "name"}, null, UserMessages.REQUIRED_BY_ASF);
}
String homepage = DoapUtil.interpolate(doapOptions.getHomepage(), project, settings);
if (homepage != null && !homepage.isEmpty()) {
try {
new URL(homepage);
DoapUtil.writeRdfResourceElement(writer, "foaf", "homepage", homepage);
} catch (MalformedURLException e) {
messages.addMessage(new String[] {"doapOptions", "homepage"}, homepage, UserMessages.INVALID_URL);
}
}
// asfext:charter
if (StringUtils.isEmpty(asfExtOptions.getCharter())) {
messages.addMessage(new String[] {"asfExtOptions", "charter"}, null, UserMessages.REQUIRED_BY_ASF);
} else {
DoapUtil.writeElement(writer, asfExtOptions.getXmlnsPrefix(), "charter", asfExtOptions.getCharter());
}
// asfext:chair
@SuppressWarnings("unchecked")
List<Developer> developers = new ArrayList<Developer>(project.getDevelopers());
sortContributors(developers);
if (StringUtils.isNotEmpty(asfExtOptions.getChair())) {
DoapUtil.writeStartElement(writer, asfExtOptions.getXmlnsPrefix(), "chair");
DoapUtil.writeStartElement(writer, "foaf", "Person");
DoapUtil.writeStartElement(writer, "foaf", "name");
writer.writeText(asfExtOptions.getChair());
writer.endElement(); // foaf:name
writer.endElement(); // foaf:Person
writer.endElement(); // asfext:chair
} else {
Developer chair = ASFExtOptionsUtil.findChair(developers);
if (chair != null) {
writeContributor(writer, chair, asfExtOptions.getXmlnsPrefix(), "chair");
developers.remove(chair);
} else {
messages.addMessage(new String[] {"asfExtOptions", "chair"}, null, UserMessages.REQUIRED_BY_ASF);
}
}
// asfext:member
if (developers != null && developers.size() > 0) {
List<Developer> pmcMembers = ASFExtOptionsUtil.findPMCMembers(developers);
for (Developer pmcMember : pmcMembers) {
writeContributor(writer, pmcMember, asfExtOptions.getXmlnsPrefix(), "member");
}
}
writeASFImplements(writer);
Map<Object, String> map = asfExtOptions.getExtra();
writeExtra(writer, project, "Extra ASFExt vocabulary.", map, asfExtOptions.getXmlnsPrefix());
}