diff --git a/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java b/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java
index 258fc7e2..05f69704 100644
--- a/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java
+++ b/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java
@@ -72,22 +72,18 @@ public final class PomModuleDescriptorWriter {
throws IOException {
LineNumberReader in;
if (options.getTemplate() == null) {
- in = new LineNumberReader(new InputStreamReader(
- PomModuleDescriptorWriter.class.getResourceAsStream("pom.template")));
+ in = new LineNumberReader(new InputStreamReader(PomModuleDescriptorWriter.class.getResourceAsStream("pom.template")));
} else {
- in = new LineNumberReader(new InputStreamReader(new FileInputStream(
- options.getTemplate())));
+ in = new LineNumberReader(new InputStreamReader(new FileInputStream(options.getTemplate())));
}
if (output.getParentFile() != null) {
output.getParentFile().mkdirs();
}
- PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(output),
- StandardCharsets.UTF_8));
- try {
+
+ try (PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(output), StandardCharsets.UTF_8))) {
IvySettings settings = IvyContext.getContext().getSettings();
- IvyVariableContainer variables = new IvyVariableContainerWrapper(
- settings.getVariableContainer());
+ IvyVariableContainer variables = new IvyVariableContainerWrapper(settings.getVariableContainer());
variables.setVariable("ivy.pom.license", SKIP_LINE, true);
variables.setVariable("ivy.pom.header", SKIP_LINE, true);
@@ -103,53 +99,56 @@ public final class PomModuleDescriptorWriter {
variables.setVariable("ivy.pom.license", options.getLicenseHeader(), true);
}
if (options.isPrintIvyInfo()) {
- String header = "";
+ String header
+ = "";
variables.setVariable("ivy.pom.header", header, true);
}
setModuleVariables(md, variables, options);
+ boolean dependencyManagement = false;
boolean dependenciesPrinted = false;
int lastIndent = 0;
int indent = 0;
- String line = in.readLine();
- while (line != null) {
+ String line;
+ while ((line = in.readLine()) != null) {
line = IvyPatternHelper.substituteVariables(line, variables);
if (line.contains(SKIP_LINE)) {
// skip this line
- line = in.readLine();
continue;
}
- if (line.trim().isEmpty()) {
- // empty line
- out.println(line);
- line = in.readLine();
- continue;
+ if (!line.trim().isEmpty()) {
+ lastIndent = indent;
+ indent = line.indexOf('<');
+
+ if (line.contains("classifier extra attribute in
- * its dependency, must retain the classifier in the generated POM when converted
- * to a POM file through {@link IvyMakePom}.
- *
- * @throws Exception if something goes wrong
- * @see IVY-1528
+ * Test case for IVY-1528.
+ *
+ * An Ivy file containing a classifier extra attribute in its
+ * dependency, must retain the classifier in the generated POM
+ * when converted to a POM file through {@link IvyMakePom}.
*/
@Test
public void testClassifier() throws Exception {
- final File ivyFile = new File(IvyMakePomTest.class.getResource("ivy-to-pom-classifier.xml").toURI());
+ File ivyFile = new File(IvyMakePomTest.class.getResource("ivy-to-pom-classifier.xml").toURI());
assertTrue(ivyFile + " is either missing or not a file", ivyFile.isFile());
- final IvyMakePom makepom = new IvyMakePom();
- makepom.setProject(project);
- final File generatedPomFile = workdir.newFile("test-ivy-to-pom-classifier.pom");
- makepom.setPomFile(generatedPomFile);
- makepom.setIvyFile(ivyFile);
- // run the task
- makepom.execute();
+ File pomFile = workdir.newFile("test-ivy-to-pom-classifier.pom");
- // read the generated pom
- final NodeList dependencies = (NodeList) TestXmlHelper.evaluateXPathExpr(generatedPomFile, "/project/dependencies/dependency", XPathConstants.NODESET);
+ IvyMakePom task = new IvyMakePom();
+ task.setIvyFile(ivyFile);
+ task.setPomFile(pomFile);
+ task.setProject(project);
+ task.execute();
+
+ NodeList dependencies = (NodeList) TestXmlHelper.evaluateXPathExpr(pomFile, "/project/dependencies/dependency", XPathConstants.NODESET);
assertNotNull("Dependencies element wasn't found in the generated POM file", dependencies);
assertEquals("Unexpected number of dependencies in the generated POM file", 2, dependencies.getLength());
- final Set