in src/main/java/com/googlesource/gerrit/plugins/automerger/ManifestReader.java [50:85]
public Set<String> getProjects() {
Set<String> projectSet = new HashSet<>();
try {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(new InputSource(new StringReader(manifestString)));
Element defaultElement = (Element) document.getElementsByTagName("default").item(0);
String defaultRevision = defaultElement.getAttribute("revision");
NodeList projectNodes = document.getElementsByTagName("project");
for (int i = 0; i < projectNodes.getLength(); i++) {
Node projectNode = projectNodes.item(i);
if (projectNode.getNodeType() == Node.ELEMENT_NODE) {
Element projectElement = (Element) projectNode;
String name = projectElement.getAttribute("name");
String revision = projectElement.getAttribute("revision");
if ("".equals(revision)) {
revision = defaultRevision;
}
// Only add to list of projects in scope if revision is same as
// manifest branch
if (revision.equals(branch)) {
projectSet.add(name);
}
}
}
} catch (SAXException | ParserConfigurationException | IOException e) {
log.error("Exception on manifest for branch {}", branch, e);
}
return projectSet;
}