in maven-release-manager/src/main/java/org/apache/maven/shared/release/transform/jdom2/JDomModelETL.java [176:224]
private void writePom(
File pomFile,
Document document,
ReleaseDescriptor releaseDescriptor,
String modelVersion,
String intro,
String outtro)
throws ReleaseExecutionException {
Element rootElement = document.getRootElement();
if (releaseDescriptor.isAddSchema()) {
Namespace pomNamespace = Namespace.getNamespace("", "http://maven.apache.org/POM/" + modelVersion);
rootElement.setNamespace(pomNamespace);
Namespace xsiNamespace = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
rootElement.addNamespaceDeclaration(xsiNamespace);
if (rootElement.getAttribute("schemaLocation", xsiNamespace) == null) {
rootElement.setAttribute(
"schemaLocation",
"http://maven.apache.org/POM/" + modelVersion + " https://maven.apache.org/xsd/maven-"
+ modelVersion + ".xsd",
xsiNamespace);
}
// the empty namespace is considered equal to the POM namespace, so match them up to avoid extra xmlns=""
ElementFilter elementFilter = new ElementFilter(Namespace.getNamespace(""));
for (Iterator<?> i = rootElement.getDescendants(elementFilter); i.hasNext(); ) {
Element e = (Element) i.next();
e.setNamespace(pomNamespace);
}
}
try (Writer writer = WriterFactory.newXmlWriter(pomFile)) {
if (intro != null) {
writer.write(intro);
}
Format format = Format.getRawFormat();
format.setLineSeparator(ls);
XMLOutputter out = new XMLOutputter(format);
out.output(document.getRootElement(), writer);
if (outtro != null) {
writer.write(outtro);
}
} catch (IOException e) {
throw new ReleaseExecutionException("Error writing POM: " + e.getMessage(), e);
}
}