Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/few-coins-pump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"changesets": patch
---

Adapt for breaking changes of versions-common (introduced in #47).
5 changes: 5 additions & 0 deletions changesets-maven-plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@
<artifactId>maven-artifact</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-compat</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package se.fortnox.changesets.maven;

import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.WriterFactory;
import org.codehaus.stax2.XMLInputFactory2;
import org.codehaus.mojo.versions.rewriting.MutableXMLStreamReader;
import org.slf4j.Logger;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.transform.TransformerException;
import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.function.Consumer;

import static java.util.Optional.ofNullable;
import static org.slf4j.LoggerFactory.getLogger;

/**
Expand Down Expand Up @@ -44,7 +44,7 @@ public static void setProjectVersion(File outFile, String newVersion) {
* Set parent project version in a pom file
*
* @param outFile The pom file to update
* @param newVersion The new version to set the project parent reference to to
* @param newVersion The new version to set the project parent reference to
*/
public static void setProjectParentVersion(File outFile, String newVersion) {
updatePom(outFile, newPom -> {
Expand All @@ -56,19 +56,17 @@ public static void setProjectParentVersion(File outFile, String newVersion) {
});
}

private static void updatePom(File outFile, Consumer<ModifiedPomXMLEventReader> updater) {
try {
StringBuilder input = PomHelper.readXmlFile(outFile);
XMLInputFactory inputFactory = XMLInputFactory2.newInstance();
inputFactory.setProperty(XMLInputFactory2.P_PRESERVE_LOCATION, Boolean.TRUE);
ModifiedPomXMLEventReader newPom = new ModifiedPomXMLEventReader(input, inputFactory, outFile.getAbsolutePath());

private static void updatePom(File outFile, Consumer<MutableXMLStreamReader> updater) {
try (MutableXMLStreamReader newPom = new MutableXMLStreamReader(outFile.toPath())) {
updater.accept(newPom);

try (Writer writer = WriterFactory.newXmlWriter(outFile)) {
IOUtil.copy(input.toString(), writer);
if(newPom.isModified()) {
try (Writer writer = Files.newBufferedWriter(
outFile.toPath(),
ofNullable(newPom.getEncoding()).map(Charset::forName).orElse(Charset.defaultCharset()))) {
writer.write(newPom.getSource());
}
}
} catch (XMLStreamException | IOException e) {
} catch (XMLStreamException | IOException | TransformerException e) {
LOG.error("Failed to update {}", outFile, e);
}
}
Expand Down
Loading