public void removeProperty(final String moduleName, final Property property) {
Validate
.isTrue(isProjectAvailable(moduleName), "Property modification prohibited at this time");
Validate.notNull(property, "Property to remove required");
final Pom pom = getPomFromModuleName(moduleName);
Validate.notNull(pom, "The pom is not available, so property removal cannot be performed");
if (!pom.isPropertyRegistered(property)) {
return;
}
final Document document = XmlUtils.readXml(fileManager.getInputStream(pom.getPath()));
final Element root = document.getDocumentElement();
final Element propertiesElement = XmlUtils.findFirstElement("/project/properties", root);
String descriptionOfChange = "";
for (final Element candidate : XmlUtils.findElements("/project/properties/*",
document.getDocumentElement())) {
if (property.equals(new Property(candidate))) {
propertiesElement.removeChild(candidate);
descriptionOfChange = highlight(REMOVED + " property") + " " + property.getName();
}
}
DomUtils.removeTextNodes(propertiesElement);
fileManager.createOrUpdateTextFileIfRequired(pom.getPath(), XmlUtils.nodeToString(document),
descriptionOfChange, false);
}