Skip to content

Commit 861fee7

Browse files
committed
Fixes breaking change introduced by new version of versions-common
1 parent 226d8a3 commit 861fee7

File tree

3 files changed

+25
-17
lines changed

3 files changed

+25
-17
lines changed

.changeset/few-coins-pump.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"changesets": patch
3+
---
4+
5+
Adapt for breaking changes of versions-common (introduced in #47).

changesets-maven-plugin/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333
<artifactId>maven-artifact</artifactId>
3434
<scope>provided</scope>
3535
</dependency>
36+
<dependency>
37+
<groupId>org.apache.maven.shared</groupId>
38+
<artifactId>maven-shared-utils</artifactId>
39+
<version>3.2.1</version>
40+
</dependency>
3641
<dependency>
3742
<groupId>org.apache.maven</groupId>
3843
<artifactId>maven-compat</artifactId>

changesets-maven-plugin/src/main/java/se/fortnox/changesets/maven/PomUpdater.java

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package se.fortnox.changesets.maven;
22

33
import org.codehaus.mojo.versions.api.PomHelper;
4-
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
5-
import org.codehaus.plexus.util.IOUtil;
6-
import org.codehaus.plexus.util.WriterFactory;
7-
import org.codehaus.stax2.XMLInputFactory2;
4+
import org.codehaus.mojo.versions.rewriting.MutableXMLStreamReader;
85
import org.slf4j.Logger;
96

10-
import javax.xml.stream.XMLInputFactory;
117
import javax.xml.stream.XMLStreamException;
8+
import javax.xml.transform.TransformerException;
129
import java.io.File;
1310
import java.io.IOException;
1411
import java.io.Writer;
12+
import java.nio.charset.Charset;
13+
import java.nio.file.Files;
1514
import java.util.function.Consumer;
1615

16+
import static java.util.Optional.ofNullable;
1717
import static org.slf4j.LoggerFactory.getLogger;
1818

1919
/**
@@ -44,7 +44,7 @@ public static void setProjectVersion(File outFile, String newVersion) {
4444
* Set parent project version in a pom file
4545
*
4646
* @param outFile The pom file to update
47-
* @param newVersion The new version to set the project parent reference to to
47+
* @param newVersion The new version to set the project parent reference to
4848
*/
4949
public static void setProjectParentVersion(File outFile, String newVersion) {
5050
updatePom(outFile, newPom -> {
@@ -56,19 +56,17 @@ public static void setProjectParentVersion(File outFile, String newVersion) {
5656
});
5757
}
5858

59-
private static void updatePom(File outFile, Consumer<ModifiedPomXMLEventReader> updater) {
60-
try {
61-
StringBuilder input = PomHelper.readXmlFile(outFile);
62-
XMLInputFactory inputFactory = XMLInputFactory2.newInstance();
63-
inputFactory.setProperty(XMLInputFactory2.P_PRESERVE_LOCATION, Boolean.TRUE);
64-
ModifiedPomXMLEventReader newPom = new ModifiedPomXMLEventReader(input, inputFactory, outFile.getAbsolutePath());
65-
59+
private static void updatePom(File outFile, Consumer<MutableXMLStreamReader> updater) {
60+
try (MutableXMLStreamReader newPom = new MutableXMLStreamReader(outFile.toPath())) {
6661
updater.accept(newPom);
67-
68-
try (Writer writer = WriterFactory.newXmlWriter(outFile)) {
69-
IOUtil.copy(input.toString(), writer);
62+
if(newPom.isModified()) {
63+
try (Writer writer = Files.newBufferedWriter(
64+
outFile.toPath(),
65+
ofNullable(newPom.getEncoding()).map(Charset::forName).orElse(Charset.defaultCharset()))) {
66+
writer.write(newPom.getSource());
67+
}
7068
}
71-
} catch (XMLStreamException | IOException e) {
69+
} catch (XMLStreamException | IOException | TransformerException e) {
7270
LOG.error("Failed to update {}", outFile, e);
7371
}
7472
}

0 commit comments

Comments
 (0)