diff --git a/versions-api/pom.xml b/versions-api/pom.xml
new file mode 100644
index 0000000000..58bcd09425
--- /dev/null
+++ b/versions-api/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+
+
+ org.codehaus.mojo.versions
+ versions
+ 2.14.0-SNAPSHOT
+
+
+ versions-api
+ Versions API
+
diff --git a/versions-api/src/main/java/org/codehaus/mojo/versions/api/change/VersionChange.java b/versions-api/src/main/java/org/codehaus/mojo/versions/api/change/VersionChange.java
new file mode 100644
index 0000000000..99362e32eb
--- /dev/null
+++ b/versions-api/src/main/java/org/codehaus/mojo/versions/api/change/VersionChange.java
@@ -0,0 +1,14 @@
+package org.codehaus.mojo.versions.api.change;
+
+public interface VersionChange
+{
+
+ String getGroupId();
+
+ String getArtifactId();
+
+ String getOldVersion();
+
+ String getNewVersion();
+
+}
diff --git a/versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecord.java b/versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecord.java
new file mode 100644
index 0000000000..b277f5318e
--- /dev/null
+++ b/versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecord.java
@@ -0,0 +1,40 @@
+package org.codehaus.mojo.versions.api.recording;
+
+import org.codehaus.mojo.versions.api.change.VersionChange;
+
+public interface ChangeRecord
+{
+ enum ChangeKind
+ {
+ COMPARE_DEPENDENCIES( "compareDependencies" ),
+ FORCE_RELEASES( "forceReleases" ),
+ UNLOCK_PARENT_VERSION( "unlockParentVersion" ),
+ UNLOCK_SNAPSHOT( "unlockSnapshot" ),
+ UPDATE_PARENT( "updateParent" ),
+ UPDATE_PROPERTY( "updateProperty" ),
+ USE_DEPENDENCY_VERSION( "useDependencyVersion" ),
+ USE_LATEST_RELEASES( "useLatestReleases" ),
+ USE_LATEST_SNAPSHOTS( "useLatestSnapshots" ),
+ USE_LATEST_VERSIONS( "useLatestVersions" ),
+ USE_NEXT_RELEASES( "useNextReleases" ),
+ USE_NEXT_SNAPSHOTS( "useNextSnapshots" ),
+ USE_NEXT_VERSIONS( "useNextVersions" ),
+ USE_RELEASES( "useReleases" );
+
+ private final String label;
+
+ ChangeKind( String label )
+ {
+ this.label = label;
+ }
+
+ public String getLabel()
+ {
+ return label;
+ }
+ }
+
+ ChangeKind getKind();
+
+ VersionChange getVersionChange();
+}
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorder.java b/versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecorder.java
similarity index 66%
rename from versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorder.java
rename to versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecorder.java
index 32483c4906..ba0faa8fd1 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorder.java
+++ b/versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecorder.java
@@ -1,4 +1,4 @@
-package org.codehaus.mojo.versions.recording;
+package org.codehaus.mojo.versions.api.recording;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -20,7 +20,7 @@
*/
import java.io.IOException;
-import java.io.OutputStream;
+import java.nio.file.Path;
/**
* A recorder of version updates.
@@ -31,21 +31,21 @@ public interface ChangeRecorder
/**
* Record that a dependency was updated.
*
- * @param kind The kind of version change
- * @param groupId The dependency group ID
- * @param artifactId The dependency artifact ID
- * @param oldVersion The old version of the dependency
- * @param newVersion The new version of the dependency
+ * @param changeRecord a record described change
*/
- void recordUpdate( String kind, String groupId, String artifactId, String oldVersion, String newVersion );
+ void recordUpdate( ChangeRecord changeRecord );
/**
- * Serialize the current set of changes to the given output stream.
+ * Serialize the current set of changes to the given output path.
+ *
+ * Implementation is responsible for creating all missing directories.
+ *
+ * Output should not be created for empty record sets.
*
- * @param outputStream The output stream
+ * @param outputPath The output path, can be null
* @throws IOException On serialization and/or I/O errors
*/
- void serialize( OutputStream outputStream ) throws IOException;
+ void serialize( Path outputPath ) throws IOException;
}
diff --git a/versions-common/pom.xml b/versions-common/pom.xml
index dffbe388bc..9194177360 100644
--- a/versions-common/pom.xml
+++ b/versions-common/pom.xml
@@ -15,6 +15,11 @@
Common components for the Versions Maven Plugin
+
+ org.codehaus.mojo.versions
+ versions-api
+ 2.14.0-SNAPSHOT
+
org.codehaus.mojo.versions
model-ruleset
@@ -120,4 +125,21 @@
+
+
+
+ org.eclipse.sisu
+ sisu-maven-plugin
+ 0.9.0.M1
+
+
+ generate-index
+
+ main-index
+
+
+
+
+
+
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/change/CompositeVersionChanger.java b/versions-common/src/main/java/org/codehaus/mojo/versions/change/CompositeVersionChanger.java
index 26ee76a7cb..b0bb3b9421 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/change/CompositeVersionChanger.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/change/CompositeVersionChanger.java
@@ -25,6 +25,8 @@
import java.util.Arrays;
import java.util.List;
+import org.codehaus.mojo.versions.api.change.VersionChange;
+
/**
* Created by IntelliJ IDEA.
*
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/change/VersionChange.java b/versions-common/src/main/java/org/codehaus/mojo/versions/change/DefaultVersionChange.java
similarity index 86%
rename from versions-common/src/main/java/org/codehaus/mojo/versions/change/VersionChange.java
rename to versions-common/src/main/java/org/codehaus/mojo/versions/change/DefaultVersionChange.java
index 753f3c81a6..f0f43ba25e 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/change/VersionChange.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/change/DefaultVersionChange.java
@@ -21,13 +21,15 @@
import java.util.Objects;
+import org.codehaus.mojo.versions.api.change.VersionChange;
+
/**
* Represents a change of an artifact's version.
*
* @author Stephen Connolly
* @since 15-Sep-2010 14:48:10
*/
-public final class VersionChange
+public final class DefaultVersionChange implements VersionChange
{
private final String groupId;
@@ -37,7 +39,7 @@ public final class VersionChange
private final String newVersion;
- public VersionChange( String groupId, String artifactId, String oldVersion, String newVersion )
+ public DefaultVersionChange( String groupId, String artifactId, String oldVersion, String newVersion )
{
this.groupId = groupId;
this.artifactId = artifactId;
@@ -76,7 +78,7 @@ public boolean equals( Object o )
return false;
}
- VersionChange versionChange = (VersionChange) o;
+ DefaultVersionChange versionChange = (DefaultVersionChange) o;
if ( !Objects.equals( artifactId, versionChange.artifactId ) )
{
@@ -104,6 +106,6 @@ public int hashCode()
public String toString()
{
- return "VersionChange(" + groupId + ':' + artifactId + ":" + oldVersion + "-->" + newVersion + ')';
+ return "DefaultVersionChange(" + groupId + ':' + artifactId + ":" + oldVersion + "-->" + newVersion + ')';
}
}
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/change/DependencyVersionChanger.java b/versions-common/src/main/java/org/codehaus/mojo/versions/change/DependencyVersionChanger.java
index 2ae7173224..a106150773 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/change/DependencyVersionChanger.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/change/DependencyVersionChanger.java
@@ -24,6 +24,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.plugin.logging.Log;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.change.VersionChange;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/change/ParentVersionChanger.java b/versions-common/src/main/java/org/codehaus/mojo/versions/change/ParentVersionChanger.java
index 7d39e15a07..a0220049b1 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/change/ParentVersionChanger.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/change/ParentVersionChanger.java
@@ -24,6 +24,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.plugin.logging.Log;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.change.VersionChange;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/change/PluginVersionChanger.java b/versions-common/src/main/java/org/codehaus/mojo/versions/change/PluginVersionChanger.java
index 8c2f80ea11..60ddce5831 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/change/PluginVersionChanger.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/change/PluginVersionChanger.java
@@ -24,6 +24,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.plugin.logging.Log;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.change.VersionChange;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/change/ProjectVersionChanger.java b/versions-common/src/main/java/org/codehaus/mojo/versions/change/ProjectVersionChanger.java
index 17fc8b9c85..64e8a87605 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/change/ProjectVersionChanger.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/change/ProjectVersionChanger.java
@@ -24,6 +24,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.plugin.logging.Log;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.change.VersionChange;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/change/VersionChanger.java b/versions-common/src/main/java/org/codehaus/mojo/versions/change/VersionChanger.java
index ae3a62d717..dd86e8e8b1 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/change/VersionChanger.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/change/VersionChanger.java
@@ -21,6 +21,8 @@
import javax.xml.stream.XMLStreamException;
+import org.codehaus.mojo.versions.api.change.VersionChange;
+
/**
* Created by IntelliJ IDEA.
*
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderNull.java b/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderNull.java
index dc8c013c1d..8f8c3a6f82 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderNull.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderNull.java
@@ -19,12 +19,17 @@
* under the License.
*/
-import java.io.OutputStream;
+import javax.inject.Named;
+
+import java.nio.file.Path;
+
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
/**
* A recorder that ignores updates.
*/
-
+@Named( "none" )
public class ChangeRecorderNull implements ChangeRecorder
{
/**
@@ -35,13 +40,12 @@ public ChangeRecorderNull()
}
@Override
- public final void recordUpdate( final String kind, final String groupId, final String artifactId,
- final String oldVersion, final String newVersion )
+ public final void recordUpdate( ChangeRecord changeRecord )
{
}
@Override
- public final void serialize( final OutputStream outputStream )
+ public final void serialize( final Path outputPath )
{
}
}
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderXML.java b/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderXML.java
index 6fa2a82c41..cf7013b360 100644
--- a/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderXML.java
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/recording/ChangeRecorderXML.java
@@ -19,6 +19,8 @@
* under the License.
*/
+import javax.inject.Named;
+import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
@@ -31,16 +33,24 @@
import java.io.IOException;
import java.io.OutputStream;
-import java.util.Objects;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import static java.nio.file.StandardOpenOption.CREATE;
+import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING;
+import static java.nio.file.StandardOpenOption.WRITE;
+
/**
* A recorder of version updates.
*/
+@Named( "xml" )
public class ChangeRecorderXML implements ChangeRecorder
{
/**
@@ -72,31 +82,40 @@ public ChangeRecorderXML()
}
@Override
- public final void recordUpdate( final String kind, final String groupId, final String artifactId,
- final String oldVersion, final String newVersion )
+ public final void recordUpdate( ChangeRecord changeRecord )
{
- Objects.requireNonNull( kind, "kind" );
- Objects.requireNonNull( groupId, "groupId" );
- Objects.requireNonNull( artifactId, "artifactId" );
- Objects.requireNonNull( oldVersion, "oldVersion" );
- Objects.requireNonNull( newVersion, "newVersion" );
-
final Element update = this.document.createElementNS( CHANGES_NAMESPACE, "update" );
- update.setAttribute( "kind", kind );
- update.setAttribute( "groupId", groupId );
- update.setAttribute( "artifactId", artifactId );
- update.setAttribute( "oldVersion", oldVersion );
- update.setAttribute( "newVersion", newVersion );
+ update.setAttribute( "kind", changeRecord.getKind().getLabel() );
+ update.setAttribute( "groupId", changeRecord.getVersionChange().getGroupId() );
+ update.setAttribute( "artifactId", changeRecord.getVersionChange().getArtifactId() );
+ update.setAttribute( "oldVersion", changeRecord.getVersionChange().getOldVersion() );
+ update.setAttribute( "newVersion", changeRecord.getVersionChange().getNewVersion() );
this.root.appendChild( update );
}
@Override
- public final void serialize( final OutputStream outputStream ) throws IOException
+ public final void serialize( final Path outputPath ) throws IOException
{
- try
+ if ( outputPath == null )
+ {
+ throw new IOException( "changeRecorderOutputFile not provided" );
+ }
+
+ if ( root.getChildNodes().getLength() == 0 )
+ {
+ // don't generate empty file
+ return;
+ }
+
+ Files.createDirectories( outputPath.getParent() );
+
+ try ( OutputStream outputStream = Files.newOutputStream( outputPath, CREATE, TRUNCATE_EXISTING, WRITE ) )
{
- final Transformer transformer = TransformerFactory.newInstance().newTransformer();
- final Source source = new DOMSource( this.document );
+ TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ transformerFactory.setAttribute( XMLConstants.ACCESS_EXTERNAL_DTD, "" );
+ transformerFactory.setAttribute( XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "" );
+ Transformer transformer = transformerFactory.newTransformer();
+ Source source = new DOMSource( this.document );
transformer.transform( source, new StreamResult( outputStream ) );
outputStream.flush();
}
diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/recording/DefaultChangeRecord.java b/versions-common/src/main/java/org/codehaus/mojo/versions/recording/DefaultChangeRecord.java
new file mode 100644
index 0000000000..a3c8d82d7d
--- /dev/null
+++ b/versions-common/src/main/java/org/codehaus/mojo/versions/recording/DefaultChangeRecord.java
@@ -0,0 +1,104 @@
+package org.codehaus.mojo.versions.recording;
+
+import java.util.Objects;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Dependency;
+import org.codehaus.mojo.versions.api.change.VersionChange;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
+
+public class DefaultChangeRecord implements ChangeRecord
+{
+ private final ChangeKind kind;
+ private final VersionChange versionChange;
+
+ private DefaultChangeRecord( ChangeKind kind, VersionChange versionChange )
+ {
+ this.kind = Objects.requireNonNull( kind, "kind must not be null" );
+ this.versionChange = Objects.requireNonNull( versionChange, "versionChange must not be null" );
+
+ }
+
+ @Override
+ public ChangeKind getKind()
+ {
+ return kind;
+ }
+
+ @Override
+ public VersionChange getVersionChange()
+ {
+ return versionChange;
+ }
+
+
+ public static Builder builder()
+ {
+ return new Builder();
+ }
+
+ public static class Builder
+ {
+
+ private ChangeKind kind;
+ private String groupId;
+ private String artifactId;
+ private String oldVersion;
+ private String newVersion;
+
+ public Builder withKind( ChangeKind kind )
+ {
+ this.kind = kind;
+ return this;
+ }
+
+ public Builder withGroupId( String groupId )
+ {
+ this.groupId = groupId;
+ return this;
+ }
+
+ public Builder withArtifactId( String artifactId )
+ {
+ this.artifactId = artifactId;
+ return this;
+ }
+
+ public Builder withOldVersion( String oldVersion )
+ {
+ this.oldVersion = oldVersion;
+ return this;
+ }
+
+ public Builder withNewVersion( String newVersion )
+ {
+ this.newVersion = newVersion;
+ return this;
+ }
+
+ public Builder withDependency( Dependency dependency )
+ {
+ groupId = dependency.getGroupId();
+ artifactId = dependency.getArtifactId();
+ oldVersion = dependency.getVersion();
+ return this;
+ }
+
+ public Builder withArtifact( Artifact artifact )
+ {
+ groupId = artifact.getGroupId();
+ artifactId = artifact.getArtifactId();
+ oldVersion = artifact.getVersion();
+ return this;
+ }
+
+ public ChangeRecord build()
+ {
+ return new DefaultChangeRecord( kind,
+ new DefaultVersionChange( groupId, artifactId, oldVersion, newVersion ) );
+ }
+ }
+
+
+}
diff --git a/versions-common/src/test/java/org/codehaus/mojo/versions/recording/ChangeRecorderXMLTest.java b/versions-common/src/test/java/org/codehaus/mojo/versions/recording/ChangeRecorderXMLTest.java
index 32c602805c..5f9be60bfc 100644
--- a/versions-common/src/test/java/org/codehaus/mojo/versions/recording/ChangeRecorderXMLTest.java
+++ b/versions-common/src/test/java/org/codehaus/mojo/versions/recording/ChangeRecorderXMLTest.java
@@ -23,12 +23,14 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
-import org.apache.commons.io.IOUtils;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.junit.Assert;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -38,43 +40,52 @@
public final class ChangeRecorderXMLTest
{
- private static void copyResource( final String name, final File output ) throws IOException
+ private static void copyResource( final String name, final Path output ) throws IOException
{
- try ( FileOutputStream outputStream = new FileOutputStream( output ) )
+ try ( InputStream inputStream = ChangeRecorderXMLTest.class.getResourceAsStream( name ) )
{
- try ( InputStream inputStream = ChangeRecorderXMLTest.class.getResourceAsStream( name ) )
- {
- IOUtils.copy( inputStream, outputStream );
- }
+ Files.copy( inputStream, output, StandardCopyOption.REPLACE_EXISTING );
}
}
- private static Document parseXML( final File file ) throws ParserConfigurationException, IOException, SAXException
+ private static Document parseXML( final Path path ) throws ParserConfigurationException, IOException, SAXException
{
final DocumentBuilderFactory documentBuilders = DocumentBuilderFactory.newInstance();
final DocumentBuilder documentBuilder = documentBuilders.newDocumentBuilder();
- return documentBuilder.parse( file );
+ return documentBuilder.parse( path.toFile() );
}
@Test
public void testChanges() throws Exception
{
- final File file0 = File.createTempFile( "ChangeRecorderTest", ".xml" );
- final File file1 = File.createTempFile( "ChangeRecorderTest", ".xml" );
+ final Path path0 = Files.createTempFile( "ChangeRecorderTest", ".xml" );
+ final Path path1 = Files.createTempDirectory( "ChangeRecorderTest" )
+ .resolve( "subDirectory" )
+ .resolve( "ChangeRecorderTest.xml" );
- copyResource( "expectedFile.xml", file0 );
+ copyResource( "expectedFile.xml", path0 );
final ChangeRecorder recorder = new ChangeRecorderXML();
- recorder.recordUpdate( "exampleKind", "org.codehaus", "example0", "0.0.1", "0.0.2" );
- recorder.recordUpdate( "exampleKind", "org.codehaus", "example1", "1.0.0", "2.0.0" );
+ recorder.recordUpdate( DefaultChangeRecord.builder()
+ .withKind( ChangeRecord.ChangeKind.FORCE_RELEASES )
+ .withGroupId( "org.codehaus" )
+ .withArtifactId( "example0" )
+ .withOldVersion( "0.0.1" )
+ .withNewVersion( "0.0.2" )
+ .build() );
- try ( FileOutputStream outputStream = new FileOutputStream( file1 ) )
- {
- recorder.serialize( outputStream );
- }
+ recorder.recordUpdate( DefaultChangeRecord.builder()
+ .withKind( ChangeRecord.ChangeKind.FORCE_RELEASES )
+ .withGroupId( "org.codehaus" )
+ .withArtifactId( "example1" )
+ .withOldVersion( "1.0.0" )
+ .withNewVersion( "2.0.0" )
+ .build() );
+
+ recorder.serialize( path1 );
- final Document document0 = parseXML( file0 );
- final Document document1 = parseXML( file1 );
+ final Document document0 = parseXML( path0 );
+ final Document document1 = parseXML( path1 );
final NodeList elements0 = document0.getElementsByTagNameNS( ChangeRecorderXML.CHANGES_NAMESPACE, "updated" );
final NodeList elements1 = document1.getElementsByTagNameNS( ChangeRecorderXML.CHANGES_NAMESPACE, "updated" );
@@ -87,13 +98,25 @@ public void testChanges() throws Exception
final Element element1 = (Element) elements1.item( index );
Assert.assertEquals( element0.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "artifactId" ),
- element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "artifactId" ) );
+ element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "artifactId" ) );
Assert.assertEquals( element0.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "groupId" ),
- element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "groupId" ) );
+ element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "groupId" ) );
Assert.assertEquals( element0.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "oldVersion" ),
- element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "oldVersion" ) );
+ element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "oldVersion" ) );
Assert.assertEquals( element0.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "newVersion" ),
- element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "newVersion" ) );
+ element1.getAttributeNS( ChangeRecorderXML.CHANGES_NAMESPACE, "newVersion" ) );
}
}
+
+ @Test
+ public void emptyResultShouldNotGenerateReports() throws Exception
+ {
+ Path path = Files.createTempDirectory( "ChangeRecorderTest" ).resolve( "ChangeRecorderTest.xml" );
+
+ ChangeRecorder recorder = new ChangeRecorderXML();
+ recorder.serialize( path );
+
+ Assert.assertFalse( "File should not be created", Files.isRegularFile( path ) );
+
+ }
}
diff --git a/versions-maven-plugin/pom.xml b/versions-maven-plugin/pom.xml
index 3881b4f003..3e1d8a64a3 100644
--- a/versions-maven-plugin/pom.xml
+++ b/versions-maven-plugin/pom.xml
@@ -159,6 +159,20 @@
+
+ org.eclipse.sisu
+ sisu-maven-plugin
+ 0.9.0.M1
+
+
+ generate-index
+
+ main-index
+ test-index
+
+
+
+
org.apache.maven.plugins
maven-invoker-plugin
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java
index 9b8cc5c5cd..ced4841828 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java
@@ -26,6 +26,7 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
@@ -44,7 +45,9 @@
import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter;
import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter;
import org.codehaus.mojo.versions.api.PomHelper;
-import org.codehaus.mojo.versions.recording.ChangeRecorder;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
+import org.codehaus.mojo.versions.recording.DefaultChangeRecord;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
import org.codehaus.mojo.versions.utils.DependencyComparator;
@@ -157,12 +160,14 @@ public abstract class AbstractVersionsDependencyUpdaterMojo
@Inject
protected AbstractVersionsDependencyUpdaterMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -540,13 +545,13 @@ private int findFirstChar( final String includeString, final String chars )
* @param pom {@link ModifiedPomXMLEventReader} instance to update the POM XML document
* @param dep dependency to be updated (can also be a dependency made from the parent)
* @param newVersion new version to update the dependency to
- * @param changeRecorderTitle title for the {@link ChangeRecorder} log
+ * @param changeKind title for the {@link ChangeRecorder} log
* @return {@code true} if an update has been made, {@code false} otherwise
* @throws XMLStreamException thrown if updating the XML doesn't succeed
*/
protected boolean updateDependencyVersion( ModifiedPomXMLEventReader pom, Dependency dep,
- String newVersion, String changeRecorderTitle )
- throws XMLStreamException
+ String newVersion, ChangeRecord.ChangeKind changeKind )
+ throws XMLStreamException, MojoExecutionException
{
boolean updated = false;
if ( isProcessingParent()
@@ -562,9 +567,11 @@ && getProject().getParent() != null
{
getLog().debug( "Made parent update from " + dep.getVersion() + " to " + newVersion );
}
- getChangeRecorder().recordUpdate( changeRecorderTitle,
- dep.getGroupId(), dep.getArtifactId(), dep.getVersion(),
- newVersion );
+ getChangeRecorder().recordUpdate( DefaultChangeRecord.builder()
+ .withKind( changeKind )
+ .withDependency( dep )
+ .withNewVersion( newVersion )
+ .build() );
updated = true;
}
@@ -576,9 +583,11 @@ && getProject().getParent() != null
{
getLog().info( "Updated " + toString( dep ) + " to version " + newVersion );
}
- getChangeRecorder().recordUpdate( changeRecorderTitle,
- dep.getGroupId(), dep.getArtifactId(), dep.getVersion(),
- newVersion );
+ getChangeRecorder().recordUpdate( DefaultChangeRecord.builder()
+ .withKind( changeKind )
+ .withDependency( dep )
+ .withNewVersion( newVersion )
+ .build() );
updated = true;
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDisplayMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDisplayMojo.java
index 47057ffd46..fd01229369 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDisplayMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDisplayMojo.java
@@ -26,6 +26,7 @@
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import java.util.LinkedHashSet;
+import java.util.Map;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
@@ -35,6 +36,7 @@
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
/**
* Abstract base class for the Display___ mojos.
@@ -88,9 +90,11 @@ protected AbstractVersionsDisplayMojo( RepositorySystem repositorySystem,
MavenProjectBuilder projectBuilder,
ArtifactMetadataSource artifactMetadataSource,
WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
@SuppressWarnings( "unchecked" )
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java
index ad4bbf6425..bdd77c63c2 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java
@@ -24,10 +24,10 @@
import javax.xml.stream.XMLStreamException;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Writer;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
import java.util.Set;
@@ -59,11 +59,9 @@
import org.codehaus.mojo.versions.api.PropertyVersions;
import org.codehaus.mojo.versions.api.Segment;
import org.codehaus.mojo.versions.api.VersionsHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.model.RuleSet;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
-import org.codehaus.mojo.versions.recording.ChangeRecorder;
-import org.codehaus.mojo.versions.recording.ChangeRecorderNull;
-import org.codehaus.mojo.versions.recording.ChangeRecorderXML;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
@@ -194,8 +192,7 @@ public abstract class AbstractVersionsUpdaterMojo
*
* @since 2.11
*/
- @Parameter( property = "changeRecorderFormat",
- defaultValue = "none" )
+ @Parameter( property = "changeRecorderFormat", defaultValue = "none" )
private String changeRecorderFormat = "none";
/**
* The output file used to record changes.
@@ -207,9 +204,9 @@ public abstract class AbstractVersionsUpdaterMojo
private File changeRecorderOutputFile;
/**
- * The change recorder implementation.
+ * The change recorders implementation.
*/
- private ChangeRecorder changeRecorder;
+ private Map changeRecorders;
/**
* Allows specifying the {@linkplain RuleSet} object describing rules
@@ -242,16 +239,18 @@ public abstract class AbstractVersionsUpdaterMojo
@Inject
protected AbstractVersionsUpdaterMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
this.repositorySystem = repositorySystem;
this.projectBuilder = projectBuilder;
this.artifactMetadataSource = artifactMetadataSource;
this.wagonManager = wagonManager;
this.artifactResolver = artifactResolver;
+ this.changeRecorders = changeRecorders;
}
public VersionsHelper getHelper() throws MojoExecutionException
@@ -332,10 +331,6 @@ public void execute()
*/
protected void validateInput() throws MojoExecutionException
{
- if ( !"none".equals( changeRecorderFormat ) && !"xml".equals( changeRecorderFormat ) )
- {
- throw new MojoExecutionException( "Only 'xml' or 'none' formats are supported for change recordings" );
- }
}
/**
* Finds the latest version of the specified artifact that matches the version range.
@@ -575,17 +570,14 @@ else if ( PomHelper.setPropertyVersion( pom, version.getProfileId(), property.ge
*
* @return The change recorder
*/
- protected ChangeRecorder getChangeRecorder()
+ protected ChangeRecorder getChangeRecorder() throws MojoExecutionException
{
+ ChangeRecorder changeRecorder = changeRecorders.get( changeRecorderFormat );
if ( changeRecorder == null )
{
- changeRecorder = "none".equals( this.changeRecorderFormat )
- ? new ChangeRecorderNull()
- : "xml".equals( this.changeRecorderFormat )
- ? new ChangeRecorderXML()
- : null;
+ throw new MojoExecutionException( "Only " + changeRecorders.keySet()
+ + " formats are supported for change recordings" );
}
-
return changeRecorder;
}
@@ -595,28 +587,12 @@ protected ChangeRecorder getChangeRecorder()
* @throws IOException On I/O errors
*/
- protected void saveChangeRecorderResults() throws IOException
+ protected void saveChangeRecorderResults() throws IOException, MojoExecutionException
{
- /*
- * Nobody did anything that required a change recorder.
- */
-
- if ( this.changeRecorder == null )
- {
- return;
- }
-
- if ( "none".equals( this.changeRecorderFormat ) )
- {
- return;
- }
this.getLog().debug( "writing change record to " + this.changeRecorderOutputFile );
-
- this.changeRecorderOutputFile.getParentFile().mkdirs();
- try ( FileOutputStream outputStream = new FileOutputStream( this.changeRecorderOutputFile ) )
- {
- this.changeRecorder.serialize( outputStream );
- }
+ getChangeRecorder().serialize( Optional.ofNullable( changeRecorderOutputFile )
+ .map( File::toPath )
+ .orElse( null ) );
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java
index 1182945f14..98eeaa0f64 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/CompareDependenciesMojo.java
@@ -49,6 +49,8 @@
import org.codehaus.mojo.versions.api.Property;
import org.codehaus.mojo.versions.api.PropertyVersions;
import org.codehaus.mojo.versions.api.VersionsHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
@@ -130,9 +132,11 @@ public CompareDependenciesMojo( RepositorySystem repositorySystem,
ArtifactMetadataSource artifactMetadataSource,
WagonManager wagonManager,
ArtifactResolver artifactResolver,
- MavenProjectBuilder mavenProjectBuilder )
+ MavenProjectBuilder mavenProjectBuilder,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
this.mavenProjectBuilder = mavenProjectBuilder;
}
@@ -299,7 +303,8 @@ private List compareVersions( ModifiedPomXMLEventReader pom, List changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
private static Set extractPluginDependenciesFromPluginsInPluginManagement( Build build )
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayParentUpdatesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayParentUpdatesMojo.java
index 066aab7e2b..c07dd91c74 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayParentUpdatesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayParentUpdatesMojo.java
@@ -22,6 +22,8 @@
import javax.inject.Inject;
import javax.xml.stream.XMLStreamException;
+import java.util.Map;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
@@ -35,6 +37,7 @@
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
@@ -53,12 +56,14 @@ public class DisplayParentUpdatesMojo
@Inject
public DisplayParentUpdatesMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
@Override
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java
index fe15039f7c..85e64ea4ca 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPluginUpdatesMojo.java
@@ -94,6 +94,7 @@
import org.apache.maven.settings.Settings;
import org.codehaus.mojo.versions.api.ArtifactVersions;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.MavenVersionComparator;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
@@ -171,9 +172,11 @@ public DisplayPluginUpdatesMojo( RepositorySystem repositorySystem,
LifecycleExecutor lifecycleExecutor,
ModelInterpolator modelInterpolator,
PluginManager pluginManager,
- RuntimeInformation runtimeInformation )
+ RuntimeInformation runtimeInformation,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
this.lifecycleExecutor = lifecycleExecutor;
this.modelInterpolator = modelInterpolator;
this.pluginManager = pluginManager;
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPropertyUpdatesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPropertyUpdatesMojo.java
index c39f11ac1e..8b81d31be6 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPropertyUpdatesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/DisplayPropertyUpdatesMojo.java
@@ -44,6 +44,7 @@
import org.codehaus.mojo.versions.api.PropertyVersions;
import org.codehaus.mojo.versions.api.Segment;
import org.codehaus.mojo.versions.api.VersionsHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.SegmentUtils;
@@ -144,12 +145,14 @@ public class DisplayPropertyUpdatesMojo
@Inject
public DisplayPropertyUpdatesMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
public void execute()
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java
index abd249228b..ccfa9fdac4 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ForceReleasesMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import java.util.regex.Matcher;
import org.apache.maven.artifact.Artifact;
@@ -42,6 +43,8 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.ArtifactVersions;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
@@ -69,12 +72,14 @@ public class ForceReleasesMojo
@Inject
public ForceReleasesMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -144,7 +149,7 @@ private void useReleases( ModifiedPomXMLEventReader pom, Collection
ArtifactVersions versions = getHelper().lookupArtifactVersions( artifact, false );
if ( versions.containsVersion( releaseVersion ) )
{
- updateDependencyVersion( pom, dep, releaseVersion, "forceReleases" );
+ updateDependencyVersion( pom, dep, releaseVersion, ChangeRecord.ChangeKind.FORCE_RELEASES );
}
else
{
@@ -161,7 +166,8 @@ private void useReleases( ModifiedPomXMLEventReader pom, Collection
}
else
{
- updateDependencyVersion( pom, dep, newestRelease.toString(), "forceReleases" );
+ updateDependencyVersion( pom, dep, newestRelease.toString(),
+ ChangeRecord.ChangeKind.FORCE_RELEASES );
}
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/LockSnapshotsMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/LockSnapshotsMojo.java
index 2749037519..992105005b 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/LockSnapshotsMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/LockSnapshotsMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -40,6 +41,7 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
@@ -67,12 +69,14 @@ public class LockSnapshotsMojo
@Inject
public LockSnapshotsMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ResolveRangesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ResolveRangesMojo.java
index 7729cba15a..3119770446 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ResolveRangesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/ResolveRangesMojo.java
@@ -48,6 +48,7 @@
import org.codehaus.mojo.versions.api.PropertyVersions;
import org.codehaus.mojo.versions.api.Segment;
import org.codehaus.mojo.versions.api.VersionsHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.SegmentUtils;
@@ -128,12 +129,14 @@ public class ResolveRangesMojo
@Inject
public ResolveRangesMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java
index fef10ea975..595f4d30d3 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetMojo.java
@@ -54,7 +54,8 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
-import org.codehaus.mojo.versions.change.VersionChange;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
import org.codehaus.mojo.versions.change.VersionChanger;
import org.codehaus.mojo.versions.change.VersionChangerFactory;
import org.codehaus.mojo.versions.ordering.ReactorDepthComparator;
@@ -243,17 +244,19 @@ public class SetMojo extends AbstractVersionsUpdaterMojo
/**
* The changes to module coordinates. Guarded by this.
*/
- private final transient List sourceChanges = new ArrayList<>();
+ private final transient List sourceChanges = new ArrayList<>();
@Inject
public SetMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver,
- Prompter prompter )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders,
+ Prompter prompter )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
this.prompter = prompter;
}
@@ -261,7 +264,7 @@ private synchronized void addChange( String groupId, String artifactId, String o
{
if ( !newVersion.equals( oldVersion ) )
{
- sourceChanges.add( new VersionChange( groupId, artifactId, oldVersion, newVersion ) );
+ sourceChanges.add( new DefaultVersionChange( groupId, artifactId, oldVersion, newVersion ) );
}
}
@@ -583,7 +586,7 @@ protected synchronized void update( ModifiedPomXMLEventReader pom )
versionChangerFactory.newVersionChanger( processParent, processProject, processDependencies,
processPlugins );
- for ( VersionChange versionChange : sourceChanges )
+ for ( DefaultVersionChange versionChange : sourceChanges )
{
changer.apply( versionChange );
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java
index f2e6787122..804339fc76 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java
@@ -39,6 +39,7 @@
import org.codehaus.mojo.versions.api.Property;
import org.codehaus.mojo.versions.api.PropertyVersions;
import org.codehaus.mojo.versions.api.VersionsHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.PropertiesVersionsFileReader;
@@ -92,12 +93,14 @@ public class SetPropertyMojo
@Inject
public SetPropertyMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetScmTagMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetScmTagMojo.java
index b11d51d33a..32d5e3f8bc 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetScmTagMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/SetScmTagMojo.java
@@ -6,6 +6,7 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
@@ -19,6 +20,7 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import static org.apache.commons.lang3.StringUtils.isAllBlank;
@@ -68,12 +70,14 @@ public class SetScmTagMojo extends AbstractVersionsUpdaterMojo
@Inject
public SetScmTagMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UnlockSnapshotsMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UnlockSnapshotsMojo.java
index 408cec4349..58795f1fea 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UnlockSnapshotsMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UnlockSnapshotsMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.List;
+import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -40,6 +41,9 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
+import org.codehaus.mojo.versions.recording.DefaultChangeRecord;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
@@ -69,9 +73,11 @@ public UnlockSnapshotsMojo( RepositorySystem repositorySystem,
MavenProjectBuilder projectBuilder,
ArtifactMetadataSource artifactMetadataSource,
WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -140,8 +146,12 @@ private void unlockSnapshots( ModifiedPomXMLEventReader pom, List de
if ( PomHelper.setDependencyVersion( pom, dep.getGroupId(), dep.getArtifactId(), dep.getVersion(),
unlockedVersion, getProject().getModel() ) )
{
- getChangeRecorder().recordUpdate( "unlockSnapshot", dep.getGroupId(), dep.getArtifactId(),
- dep.getVersion(), unlockedVersion );
+
+ getChangeRecorder().recordUpdate( DefaultChangeRecord.builder()
+ .withKind( ChangeRecord.ChangeKind.UNLOCK_SNAPSHOT )
+ .withDependency( dep )
+ .withNewVersion( unlockedVersion )
+ .build() );
getLog().info( "Unlocked " + toString( dep ) + " to version " + unlockedVersion );
}
}
@@ -174,9 +184,11 @@ private void unlockParentSnapshot( ModifiedPomXMLEventReader pom, MavenProject p
{
getLog().info( "Unlocked parent " + parentArtifact + " to version "
+ unlockedParentVersion );
- getChangeRecorder().recordUpdate( "unlockParentVersion", parentArtifact.getGroupId(),
- parentArtifact.getArtifactId(), parentArtifact.getVersion(),
- unlockedParentVersion );
+ getChangeRecorder().recordUpdate( DefaultChangeRecord.builder()
+ .withKind( ChangeRecord.ChangeKind.UNLOCK_PARENT_VERSION )
+ .withArtifact( parentArtifact )
+ .withNewVersion( unlockedParentVersion )
+ .build() );
}
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java
index be50bbeb08..dc52b603bd 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateChildModulesMojo.java
@@ -40,6 +40,7 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
@@ -71,12 +72,14 @@ public class UpdateChildModulesMojo
@Inject
public UpdateChildModulesMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateParentMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateParentMojo.java
index caa60b4ce8..7d71969542 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateParentMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdateParentMojo.java
@@ -24,6 +24,7 @@
import java.util.Arrays;
import java.util.Collections;
+import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -45,7 +46,10 @@
import org.codehaus.mojo.versions.api.ArtifactVersions;
import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.api.Segment;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
+import org.codehaus.mojo.versions.recording.DefaultChangeRecord;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
import org.codehaus.mojo.versions.utils.SegmentUtils;
@@ -137,12 +141,14 @@ public class UpdateParentMojo extends AbstractVersionsUpdaterMojo
@Inject
public UpdateParentMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -193,9 +199,13 @@ protected void update( ModifiedPomXMLEventReader pom )
getLog().debug( "Made an update from " + getProject().getParent().getVersion()
+ " to " + artifactVersion );
}
- getChangeRecorder().recordUpdate( "updateParent", getProject().getParent().getGroupId(),
- getProject().getParent().getArtifactId(), getProject().getParent().getVersion(),
- artifactVersion.toString() );
+ getChangeRecorder().recordUpdate( DefaultChangeRecord.builder()
+ .withKind( ChangeRecord.ChangeKind.UPDATE_PARENT )
+ .withGroupId( getProject().getParent().getGroupId() )
+ .withArtifactId( getProject().getParent().getArtifactId() )
+ .withOldVersion( getProject().getParent().getVersion() )
+ .withNewVersion( artifactVersion.toString() )
+ .build() );
}
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertiesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertiesMojo.java
index 8211e28179..ace363963b 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertiesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertiesMojo.java
@@ -41,7 +41,10 @@
import org.codehaus.mojo.versions.api.PropertyVersions;
import org.codehaus.mojo.versions.api.Segment;
import org.codehaus.mojo.versions.api.VersionsHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
+import org.codehaus.mojo.versions.recording.DefaultChangeRecord;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import static org.codehaus.mojo.versions.utils.SegmentUtils.determineUnchangedSegment;
@@ -139,12 +142,14 @@ public class UpdatePropertiesMojo extends AbstractVersionsDependencyUpdaterMojo
@Inject
public UpdatePropertiesMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -207,9 +212,13 @@ protected void update( ModifiedPomXMLEventReader pom )
{
if ( ( isIncluded( association.getArtifact() ) ) )
{
- this.getChangeRecorder().recordUpdate( "updateProperty", association.getGroupId(),
- association.getArtifactId(), currentVersion,
- targetVersion.toString() );
+ getChangeRecorder().recordUpdate( DefaultChangeRecord.builder()
+ .withKind(
+ ChangeRecord.ChangeKind.UPDATE_PROPERTY )
+ .withArtifact( association.getArtifact() )
+ .withOldVersion( currentVersion )
+ .withNewVersion( targetVersion.toString() )
+ .build() );
}
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertyMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertyMojo.java
index 9e22942623..979d98f987 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertyMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UpdatePropertyMojo.java
@@ -41,7 +41,10 @@
import org.codehaus.mojo.versions.api.PropertyVersions;
import org.codehaus.mojo.versions.api.Segment;
import org.codehaus.mojo.versions.api.VersionsHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
+import org.codehaus.mojo.versions.recording.DefaultChangeRecord;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.SegmentUtils;
@@ -141,9 +144,11 @@ public UpdatePropertyMojo( RepositorySystem repositorySystem,
MavenProjectBuilder projectBuilder,
ArtifactMetadataSource artifactMetadataSource,
WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -190,9 +195,12 @@ protected void update( ModifiedPomXMLEventReader pom )
{
for ( final ArtifactAssociation association : version.getAssociations() )
{
- this.getChangeRecorder().recordUpdate( "updateProperty", association.getGroupId(),
- association.getArtifactId(), currentVersion,
- targetVersion.toString() );
+ this.getChangeRecorder().recordUpdate( DefaultChangeRecord.builder()
+ .withKind( ChangeRecord.ChangeKind.UPDATE_PROPERTY )
+ .withArtifact( association.getArtifact() )
+ .withOldVersion( currentVersion )
+ .withNewVersion( targetVersion.toString() )
+ .build() );
}
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java
index bfbc42d9eb..838ce95705 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseDepVersionMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.manager.WagonManager;
@@ -40,6 +41,8 @@
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.ArtifactVersions;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import static java.util.Collections.singletonList;
@@ -73,12 +76,14 @@ public class UseDepVersionMojo extends AbstractVersionsDependencyUpdaterMojo
@Inject
public UseDepVersionMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
@Override
@@ -160,7 +165,7 @@ private void useDepVersion( ModifiedPomXMLEventReader pom, Collection changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -153,7 +158,7 @@ private void useLatestReleases( ModifiedPomXMLEventReader pom, Collection
+ ( dep, versions ) ->
{
try
{
@@ -166,7 +171,7 @@ private void useLatestReleases( ModifiedPomXMLEventReader pom, Collection !SNAPSHOT_REGEX.matcher( dep.getVersion() ).matches() );
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java
index 33d1785553..a3aaa8d0d7 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java
@@ -26,6 +26,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
+import java.util.Map;
import java.util.Optional;
import org.apache.maven.artifact.manager.WagonManager;
@@ -42,6 +43,8 @@
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.api.Segment;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.SegmentUtils;
@@ -91,12 +94,14 @@ public class UseLatestSnapshotsMojo
@Inject
public UseLatestSnapshotsMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -142,7 +147,7 @@ private void useLatestSnapshots( ModifiedPomXMLEventReader pom, Collection
+ ( dep, versions ) ->
{
try
{
@@ -156,7 +161,7 @@ private void useLatestSnapshots( ModifiedPomXMLEventReader pom, Collection !SNAPSHOT_REGEX.matcher( dep.getVersion() ).matches() );
+ }, ChangeRecord.ChangeKind.USE_LATEST_SNAPSHOTS,
+ dep -> !SNAPSHOT_REGEX.matcher( dep.getVersion() ).matches() );
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestVersionsMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestVersionsMojo.java
index 57235889ca..3b23408c63 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestVersionsMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseLatestVersionsMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import java.util.Optional;
import org.apache.maven.artifact.manager.WagonManager;
@@ -40,6 +41,8 @@
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.api.Segment;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.SegmentUtils;
@@ -99,12 +102,14 @@ public class UseLatestVersionsMojo
@Inject
public UseLatestVersionsMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
@Override
@@ -160,7 +165,7 @@ private void useLatestVersions( ModifiedPomXMLEventReader pom, Collection
+ ( dep, versions ) ->
{
try
{
@@ -173,6 +178,6 @@ private void useLatestVersions( ModifiedPomXMLEventReader pom, Collection changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -65,7 +70,7 @@ public UseLatestVersionsMojoBase( RepositorySystem repositorySystem,
* @param dependencies collection of dependencies with the dependency versions before the change
* @param newestVersionProducer function providing the newest version given a dependency and
* an {@link ArtifactVersions} instance
- * @param changeRecorderTitle title for the change recorder records
+ * @param changeKind title for the change recorder records
* @param filters optional array of filters
* @throws XMLStreamException thrown if the POM update doesn't succeed
* @throws ArtifactMetadataRetrievalException thrown if an artifact cannot be retried
@@ -75,7 +80,7 @@ protected final void useLatestVersions( ModifiedPomXMLEventReader pom,
Collection dependencies,
BiFunction>
newestVersionProducer,
- String changeRecorderTitle,
+ ChangeRecord.ChangeKind changeKind,
Predicate... filters )
throws XMLStreamException, MojoExecutionException, ArtifactMetadataRetrievalException
{
@@ -114,7 +119,7 @@ protected final void useLatestVersions( ModifiedPomXMLEventReader pom,
Optional newestVer = newestVersionProducer.apply( dep, versions );
if ( newestVer.isPresent() )
{
- updateDependencyVersion( pom, dep, newestVer.get().toString(), changeRecorderTitle );
+ updateDependencyVersion( pom, dep, newestVer.get().toString(), changeKind );
}
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextReleasesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextReleasesMojo.java
index 05705f90dc..4e458fcf21 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextReleasesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextReleasesMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import java.util.regex.Pattern;
import org.apache.maven.artifact.manager.WagonManager;
@@ -37,6 +38,8 @@
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
@@ -68,9 +71,11 @@ public UseNextReleasesMojo( RepositorySystem repositorySystem,
MavenProjectBuilder projectBuilder,
ArtifactMetadataSource artifactMetadataSource,
WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -114,7 +119,8 @@ private void useNextReleases( ModifiedPomXMLEventReader pom, Collection of( versions.getNewerVersions( dep.getVersion(), false )[0] ),
- "useNextReleases", dep -> !SNAPSHOT_REGEX.matcher( dep.getVersion() ).matches() );
+ ( dep, versions ) -> of( versions.getNewerVersions( dep.getVersion(), false )[0] ),
+ ChangeRecord.ChangeKind.USE_NEXT_RELEASES,
+ dep -> !SNAPSHOT_REGEX.matcher( dep.getVersion() ).matches() );
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextSnapshotsMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextSnapshotsMojo.java
index afaf413029..ed135c9b86 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextSnapshotsMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextSnapshotsMojo.java
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Map;
import java.util.Optional;
import org.apache.maven.artifact.manager.WagonManager;
@@ -41,6 +42,8 @@
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.api.Segment;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import org.codehaus.mojo.versions.utils.SegmentUtils;
@@ -93,9 +96,11 @@ public UseNextSnapshotsMojo( RepositorySystem repositorySystem,
MavenProjectBuilder projectBuilder,
ArtifactMetadataSource artifactMetadataSource,
WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
// the below is necessary for UseLatestVersionsMojoBase.useLatestVersions to select snapshots
allowSnapshots = true;
}
@@ -141,7 +146,7 @@ private void useNextSnapshots( ModifiedPomXMLEventReader pom, Collection
+ ( dep, versions ) ->
{
try
{
@@ -155,7 +160,7 @@ private void useNextSnapshots( ModifiedPomXMLEventReader pom, Collection !SNAPSHOT_REGEX.matcher( dep.getVersion() ).matches() );
+ }, ChangeRecord.ChangeKind.USE_NEXT_SNAPSHOTS,
+ dep -> !SNAPSHOT_REGEX.matcher( dep.getVersion() ).matches() );
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextVersionsMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextVersionsMojo.java
index 529e983e40..9a96bcff80 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextVersionsMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseNextVersionsMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
@@ -36,6 +37,8 @@
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.api.PomHelper;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
@@ -60,9 +63,11 @@ public UseNextVersionsMojo( RepositorySystem repositorySystem,
MavenProjectBuilder projectBuilder,
ArtifactMetadataSource artifactMetadataSource,
WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -105,7 +110,7 @@ private void useNextVersions( ModifiedPomXMLEventReader pom, Collection of( versions.getNewerVersions( dep.getVersion(), allowSnapshots )[0] ),
- "useNextVersions" );
+ ( dep, versions ) -> of( versions.getNewerVersions( dep.getVersion(), allowSnapshots )[0] ),
+ ChangeRecord.ChangeKind.USE_NEXT_VERSIONS );
}
}
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReactorMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReactorMojo.java
index a8333cb370..c2b5802978 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReactorMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReactorMojo.java
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.maven.artifact.Artifact;
@@ -40,6 +41,7 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
/**
@@ -57,12 +59,14 @@ public class UseReactorMojo
@Inject
public UseReactorMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java
index 1a4704f8f2..ea6efde7d9 100644
--- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java
+++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Map;
import java.util.Optional;
import java.util.regex.Matcher;
@@ -44,6 +45,8 @@
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.ArtifactVersions;
import org.codehaus.mojo.versions.api.PomHelper;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.rewriting.ModifiedPomXMLEventReader;
import static java.util.Collections.singletonList;
@@ -83,12 +86,14 @@ public class UseReleasesMojo
@Inject
public UseReleasesMojo( RepositorySystem repositorySystem,
- MavenProjectBuilder projectBuilder,
- ArtifactMetadataSource artifactMetadataSource,
- WagonManager wagonManager,
- ArtifactResolver artifactResolver )
+ MavenProjectBuilder projectBuilder,
+ ArtifactMetadataSource artifactMetadataSource,
+ WagonManager wagonManager,
+ ArtifactResolver artifactResolver,
+ Map changeRecorders )
{
- super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver );
+ super( repositorySystem, projectBuilder, artifactMetadataSource, wagonManager, artifactResolver,
+ changeRecorders );
}
/**
@@ -168,7 +173,7 @@ private void useReleases( ModifiedPomXMLEventReader pom, Collection
getHelper().lookupArtifactVersions( artifact, false ) );
if ( targetVersion.isPresent() )
{
- updateDependencyVersion( pom, dep, targetVersion.get(), "useReleases" );
+ updateDependencyVersion( pom, dep, targetVersion.get(), ChangeRecord.ChangeKind.USE_RELEASES );
}
else
{
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojoTest.java
index 25250b203d..6c0207ec2d 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/DisplayDependencyUpdatesMojoTest.java
@@ -157,12 +157,16 @@ public void testVersionsWithQualifiersNotConsideredAsMinorUpdates()
tempPath = Files.createTempFile( "display-dependency-updates", "" );
final File tempFile = tempPath.toFile();
new DisplayDependencyUpdatesMojo( mockRepositorySystem(),
- null, mockArtifactMetadataSource( new HashMap()
- {{
- put( "default-dependency", new String[] {"1.0.0", "1.1.0", "2.0.0-SNAPSHOT", "2.0.0-beta",
- "2.0.0-rc1"} );
- }} ), null,
- new StubArtifactResolver( new ArtifactStubFactory(), false, false ) )
+ null,
+ mockArtifactMetadataSource( new HashMap()
+ {{
+ put( "default-dependency",
+ new String[] {"1.0.0", "1.1.0", "2.0.0-SNAPSHOT", "2.0.0-beta",
+ "2.0.0-rc1"} );
+ }} ),
+ null,
+ new StubArtifactResolver( new ArtifactStubFactory(), false, false ),
+ null )
{{
setProject( createProject() );
setVariableValueToObject( this, "allowAnyUpdates", false );
@@ -200,11 +204,14 @@ public void testAllowMajorUpdatesFalse()
tempPath = Files.createTempFile( "display-dependency-updates", "" );
final File tempFile = tempPath.toFile();
new DisplayDependencyUpdatesMojo( mockRepositorySystem(),
- null, mockArtifactMetadataSource( new HashMap()
- {{
- put( "default-dependency", new String[] {"1.0.0", "1.1.0", "2.0.0"} );
- }} ), null,
- new StubArtifactResolver( new ArtifactStubFactory(), false, false ) )
+ null,
+ mockArtifactMetadataSource( new HashMap()
+ {{
+ put( "default-dependency", new String[] {"1.0.0", "1.1.0", "2.0.0"} );
+ }} ),
+ null,
+ new StubArtifactResolver( new ArtifactStubFactory(), false, false ),
+ null )
{{
setProject( createProject() );
setVariableValueToObject( this, "allowAnyUpdates", false );
@@ -241,11 +248,15 @@ public void testAllowMinorUpdatesFalse()
tempPath = Files.createTempFile( "display-dependency-updates", "" );
final File tempFile = tempPath.toFile();
new DisplayDependencyUpdatesMojo( mockRepositorySystem(),
- null, mockArtifactMetadataSource( new HashMap()
- {{
- put( "default-dependency", new String[] {"1.0.0", "1.0.1", "1.1.0", "2.0.0"} );
- }} ), null,
- new StubArtifactResolver( new ArtifactStubFactory(), false, false ) )
+ null,
+ mockArtifactMetadataSource( new HashMap()
+ {{
+ put( "default-dependency",
+ new String[] {"1.0.0", "1.0.1", "1.1.0", "2.0.0"} );
+ }} ),
+ null,
+ new StubArtifactResolver( new ArtifactStubFactory(), false, false ),
+ null )
{{
setProject( createProject() );
setVariableValueToObject( this, "allowAnyUpdates", false );
@@ -283,11 +294,15 @@ public void testAllowIncrementalUpdatesFalse()
tempPath = Files.createTempFile( "display-dependency-updates", "" );
final File tempFile = tempPath.toFile();
new DisplayDependencyUpdatesMojo( mockRepositorySystem(),
- null, mockArtifactMetadataSource( new HashMap()
- {{
- put( "default-dependency", new String[] {"1.0.0", "1.0.0-1", "1.0.1", "1.1.0", "2.0.0"} );
- }} ), null,
- new StubArtifactResolver( new ArtifactStubFactory(), false, false ) )
+ null,
+ mockArtifactMetadataSource( new HashMap()
+ {{
+ put( "default-dependency",
+ new String[] {"1.0.0", "1.0.0-1", "1.0.1", "1.1.0", "2.0.0"} );
+ }} ),
+ null,
+ new StubArtifactResolver( new ArtifactStubFactory(), false, false ),
+ null )
{{
setProject( createProject() );
setVariableValueToObject( this, "allowAnyUpdates", false );
@@ -326,12 +341,16 @@ public void testVersionsWithQualifiersNotConsideredAsIncrementalUpdates()
tempPath = Files.createTempFile( "display-dependency-updates", "" );
final File tempFile = tempPath.toFile();
new DisplayDependencyUpdatesMojo( mockRepositorySystem(),
- null, mockArtifactMetadataSource( new HashMap()
- {{
- put( "default-dependency", new String[] {"1.0.0", "1.1.0", "1.9.0-SNAPSHOT", "1.9.0-beta",
- "1.9.0-rc1"} );
- }} ), null,
- new StubArtifactResolver( new ArtifactStubFactory(), false, false ) )
+ null,
+ mockArtifactMetadataSource( new HashMap()
+ {{
+ put( "default-dependency",
+ new String[] {"1.0.0", "1.1.0", "1.9.0-SNAPSHOT", "1.9.0-beta",
+ "1.9.0-rc1"} );
+ }} ),
+ null,
+ new StubArtifactResolver( new ArtifactStubFactory(), false, false ),
+ null )
{{
setProject( createProject() );
setVariableValueToObject( this, "allowAnyUpdates", false );
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/ForceReleasesMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/ForceReleasesMojoTest.java
index 983fa90629..3bdf537f95 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/ForceReleasesMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/ForceReleasesMojoTest.java
@@ -11,7 +11,7 @@
import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
import org.apache.maven.project.MavenProject;
import org.codehaus.mojo.versions.api.PomHelper;
-import org.codehaus.mojo.versions.change.VersionChange;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
import org.codehaus.mojo.versions.utils.TestChangeRecorder;
import org.junit.Before;
@@ -63,11 +63,10 @@ public void setUp() throws IllegalAccessException
{
changeRecorder = new TestChangeRecorder();
mojo = new ForceReleasesMojo( mockRepositorySystem(),
- null, mockArtifactMetadataSource(),
- null, new StubArtifactResolver( new ArtifactStubFactory(),
- false, false ) );
+ null, mockArtifactMetadataSource(),
+ null, new StubArtifactResolver( new ArtifactStubFactory(), false, false ),
+ changeRecorder.asTestMap() );
setVariableValueToObject( mojo, "reactorProjects", emptyList() );
- setVariableValueToObject( mojo, "changeRecorder", changeRecorder );
mojo.project = new MavenProject()
{{
setModel( new Model()
@@ -102,8 +101,8 @@ public void testProcessParent()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "artifactA",
- "1.0.0-SNAPSHOT", "1.0.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "artifactA",
+ "1.0.0-SNAPSHOT", "1.0.0" ) ) );
}
@Test
@@ -126,8 +125,8 @@ public void testReplaceSnapshotWithRelease()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "artifactA",
- "1.0.0-SNAPSHOT", "1.0.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "artifactA",
+ "1.0.0-SNAPSHOT", "1.0.0" ) ) );
}
@Test
@@ -150,8 +149,8 @@ public void testUpgrade()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "artifactA",
- "1.1.0-SNAPSHOT", "2.0.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "artifactA",
+ "1.1.0-SNAPSHOT", "2.0.0" ) ) );
}
@Test
@@ -174,8 +173,8 @@ public void testDowngrade()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "artifactA",
- "2.1.0-SNAPSHOT", "2.0.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "artifactA",
+ "2.1.0-SNAPSHOT", "2.0.0" ) ) );
}
@Test
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SeparatePatternsForIncludesAnExcludesTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SeparatePatternsForIncludesAnExcludesTest.java
index f17e63817c..5605952eb2 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SeparatePatternsForIncludesAnExcludesTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SeparatePatternsForIncludesAnExcludesTest.java
@@ -21,7 +21,7 @@ public class SeparatePatternsForIncludesAnExcludesTest
public void setUp()
throws Exception
{
- mojo = new AbstractVersionsDependencyUpdaterMojo( null, null, null, null, null )
+ mojo = new AbstractVersionsDependencyUpdaterMojo( null, null, null, null, null, null )
{
protected void update( ModifiedPomXMLEventReader pom )
throws MojoExecutionException, MojoFailureException, XMLStreamException
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SetMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SetMojoTest.java
index bce9eaa048..3a34edd890 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SetMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/SetMojoTest.java
@@ -48,7 +48,7 @@ public void tearDown() throws IOException
@Test
public void testGetIncrementedVersion() throws MojoExecutionException
{
- new SetMojo( null, null, null, null, null, null )
+ new SetMojo( null, null, null, null, null, null, null )
{
{
assertThat( getIncrementedVersion( "1.0.0", null ), is( "1.0.1-SNAPSHOT" ) );
@@ -63,7 +63,7 @@ public void testGetIncrementedVersion() throws MojoExecutionException
@Test
public void testNextSnapshotIndexLowerBound()
{
- new SetMojo( null, null, null, null, null, null )
+ new SetMojo( null, null, null, null, null, null, null )
{
{
try
@@ -83,7 +83,7 @@ public void testNextSnapshotIndexLowerBound()
@Test
public void testNextSnapshotIndexUpperBound()
{
- new SetMojo( null, null, null, null, null, null )
+ new SetMojo( null, null, null, null, null, null, null )
{
{
try
@@ -105,7 +105,7 @@ public void testNextSnapshotIndexWithoutNextSnapshot() throws MojoFailureExcepti
{
try
{
- new SetMojo( null, null, null, null, null, null )
+ new SetMojo( null, null, null, null, null, null, null )
{
{
project = new MavenProject();
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java
index 0350f8c684..27b9724589 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java
@@ -20,7 +20,7 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
-import org.codehaus.mojo.versions.change.VersionChange;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
import org.codehaus.mojo.versions.ordering.InvalidSegmentException;
import org.codehaus.mojo.versions.utils.TestChangeRecorder;
import org.junit.Before;
@@ -76,14 +76,14 @@ public void setUp() throws IllegalAccessException
artifactResolver = mock( ArtifactResolver.class );
mojo = new UpdateParentMojo( repositorySystem,
- null,
- artifactMetadataSource,
- null,
- artifactResolver )
+ null,
+ artifactMetadataSource,
+ null,
+ artifactResolver,
+ changeRecorder.asTestMap() )
{{
setProject( createProject() );
reactorProjects = Collections.emptyList();
- setVariableValueToObject( this, "changeRecorder", changeRecorder );
}};
}
@@ -159,8 +159,8 @@ public void testParentDowngradeAllowed()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "parent-artifact", "1.0.1-SNAPSHOT",
- "1.0.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "parent-artifact", "1.0.1-SNAPSHOT",
+ "1.0.0" ) ) );
}
@Test
@@ -240,9 +240,9 @@ public void testAllowSnapshotsWithParentVersion()
.thenReturn( true );
mojo.update( null );
}
- assertThat( changeRecorder.getChanges(), hasItem( new VersionChange( "default-group",
- "issue-670-artifact", "0.0.1-1",
- "0.0.1-1-impl-SNAPSHOT" ) ) );
+ assertThat( changeRecorder.getChanges(), hasItem( new DefaultVersionChange( "default-group",
+ "issue-670-artifact", "0.0.1-1",
+ "0.0.1-1-impl-SNAPSHOT" ) ) );
}
@Test
@@ -299,8 +299,8 @@ private void testSkipResolution( String version )
throw new RuntimeException( e );
}
- assertThat( changeRecorder.getChanges(), hasItem( new VersionChange( "default-group",
- "parent-artifact", "1.0.0", version ) ) );
+ assertThat( changeRecorder.getChanges(), hasItem(
+ new DefaultVersionChange( "default-group", "parent-artifact", "1.0.0", version ) ) );
}
@Test
@@ -320,8 +320,8 @@ public void testShouldUpgradeToSnapshot() throws MojoExecutionException, XMLStre
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "parent-artifact", "0.9.0",
- "1.0.1-SNAPSHOT" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "parent-artifact", "0.9.0",
+ "1.0.1-SNAPSHOT" ) ) );
}
@Test
@@ -382,8 +382,8 @@ public void testParentVersionRange() throws MojoExecutionException, XMLStreamExc
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "dummy-parent2", "1.0",
- "2.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "dummy-parent2", "1.0",
+ "2.0" ) ) );
}
@Test
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTest.java
index 3877397f16..62c034b105 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTest.java
@@ -21,7 +21,7 @@
import java.nio.file.Files;
import java.nio.file.Paths;
-import org.codehaus.mojo.versions.change.VersionChange;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
import org.hamcrest.Matchers;
import org.junit.Test;
@@ -39,8 +39,8 @@ public void testAllowMajorUpdates() throws Exception
Files.copy( Paths.get( "src/test/resources/org/codehaus/mojo/update-properties/issue-454-pom.xml" ),
Paths.get( pomDir.toString(), "pom.xml" ), REPLACE_EXISTING );
setUpMojo( "update-properties" ).execute();
- assertThat( changeRecorder.getChanges(), Matchers.hasItem( new VersionChange( "default-group",
- "default-artifact", "1.0.0", "2.0.0-M1" ) ) );
+ assertThat( changeRecorder.getChanges(), Matchers.hasItem(
+ new DefaultVersionChange( "default-group", "default-artifact", "1.0.0", "2.0.0-M1" ) ) );
}
@Test
@@ -51,8 +51,8 @@ public void testAllowMinorUpdates() throws Exception
UpdatePropertiesMojo mojo = setUpMojo( "update-properties" );
mojo.allowMajorUpdates = false;
mojo.execute();
- assertThat( changeRecorder.getChanges(), Matchers.hasItem( new VersionChange( "default-group",
- "default-artifact", "1.0.0", "1.1.0-alpha" ) ) );
+ assertThat( changeRecorder.getChanges(), Matchers.hasItem(
+ new DefaultVersionChange( "default-group", "default-artifact", "1.0.0", "1.1.0-alpha" ) ) );
}
@Test
@@ -64,7 +64,7 @@ public void testAllowIncrementalUpdates() throws Exception
mojo.allowMajorUpdates = false;
mojo.allowMinorUpdates = false;
mojo.execute();
- assertThat( changeRecorder.getChanges(), Matchers.hasItem( new VersionChange( "default-group",
- "default-artifact", "1.0.0", "1.0.1-rc1" ) ) );
+ assertThat( changeRecorder.getChanges(), Matchers.hasItem(
+ new DefaultVersionChange( "default-group", "default-artifact", "1.0.0", "1.0.1-rc1" ) ) );
}
}
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTestBase.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTestBase.java
index 431bc30906..afcb78fe8c 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTestBase.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertiesMojoTestBase.java
@@ -20,12 +20,14 @@
import java.nio.file.Path;
import java.util.HashMap;
+import java.util.Map;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.plugin.Mojo;
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
import org.apache.maven.plugin.testing.MojoRule;
import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
import org.codehaus.mojo.versions.utils.TestChangeRecorder;
import org.junit.After;
import org.junit.Before;
@@ -51,7 +53,6 @@ public void setUp() throws Exception
{
super.setUp();
pomDir = createTempDir( "update-property" );
- changeRecorder = new TestChangeRecorder();
artifactMetadataSource = mockArtifactMetadataSource( new HashMap()
{{
put( "default-artifact", new String[] {"1.0.0", "1.0.1-rc1", "1.1.0-alpha", "2.0.0-M1"} );
@@ -77,8 +78,12 @@ protected T setUpMojo( String goal ) throws Exception
T mojo = (T) mojoRule.lookupConfiguredMojo( pomDir.toFile(), goal );
setVariableValueToObject( mojo, "localRepository", new StubArtifactRepository( pomDir.toString() ) );
setVariableValueToObject( mojo, "artifactMetadataSource", artifactMetadataSource );
- setVariableValueToObject( mojo, "changeRecorder", changeRecorder );
setVariableValueToObject( mojo, "generateBackupPoms", false );
+ setVariableValueToObject( mojo, "changeRecorderFormat", "test" );
+ changeRecorder = (TestChangeRecorder)
+ ( (Map) getVariableValueFromObject( mojo, "changeRecorders" ) )
+ .get( "test" );
+
return (T) mojo;
}
}
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertyMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertyMojoTest.java
index 8e1ec84eab..1a63831a8d 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertyMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UpdatePropertyMojoTest.java
@@ -21,7 +21,7 @@
import java.nio.file.Files;
import java.nio.file.Paths;
-import org.codehaus.mojo.versions.change.VersionChange;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
import org.hamcrest.Matchers;
import org.junit.Test;
@@ -41,8 +41,8 @@ public void testAllowMajorUpdates() throws Exception
UpdatePropertyMojo mojo = setUpMojo( "update-property" );
mojo.property = "artifact-version";
mojo.execute();
- assertThat( changeRecorder.getChanges(), Matchers.hasItem( new VersionChange( "default-group",
- "default-artifact", "1.0.0", "2.0.0-M1" ) ) );
+ assertThat( changeRecorder.getChanges(), Matchers.hasItem(
+ new DefaultVersionChange( "default-group", "default-artifact", "1.0.0", "2.0.0-M1" ) ) );
}
@Test
@@ -54,8 +54,8 @@ public void testAllowMinorUpdates() throws Exception
mojo.property = "artifact-version";
mojo.allowMajorUpdates = false;
mojo.execute();
- assertThat( changeRecorder.getChanges(), Matchers.hasItem( new VersionChange( "default-group",
- "default-artifact", "1.0.0", "1.1.0-alpha" ) ) );
+ assertThat( changeRecorder.getChanges(), Matchers.hasItem(
+ new DefaultVersionChange( "default-group", "default-artifact", "1.0.0", "1.1.0-alpha" ) ) );
}
@Test
@@ -68,7 +68,7 @@ public void testAllowIncrementalUpdates() throws Exception
mojo.allowMajorUpdates = false;
mojo.allowMinorUpdates = false;
mojo.execute();
- assertThat( changeRecorder.getChanges(), Matchers.hasItem( new VersionChange( "default-group",
- "default-artifact", "1.0.0", "1.0.1-rc1" ) ) );
+ assertThat( changeRecorder.getChanges(), Matchers.hasItem(
+ new DefaultVersionChange( "default-group", "default-artifact", "1.0.0", "1.0.1-rc1" ) ) );
}
}
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestReleasesMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestReleasesMojoTest.java
index 72fd58f2d5..82446fda07 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestReleasesMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestReleasesMojoTest.java
@@ -54,11 +54,14 @@ public void setUp() throws Exception
put( "dependency-artifact", new String[] {"0.9.0", "1.0.0-beta"} );
}} );
+ changeRecorder = new TestChangeRecorder();
+
mojo = new UseLatestReleasesMojo( repositorySystemMock,
- null,
- artifactMetadataSourceMock,
- null,
- null )
+ null,
+ artifactMetadataSourceMock,
+ null,
+ null,
+ changeRecorder.asTestMap() )
{{
reactorProjects = emptyList();
MavenProject project = new MavenProject()
@@ -81,9 +84,6 @@ public void setUp() throws Exception
}} );
}};
setProject( project );
-
- changeRecorder = new TestChangeRecorder();
- setVariableValueToObject( this, "changeRecorder", changeRecorder );
}};
}
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestVersionsMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestVersionsMojoTest.java
index 98c5a34f1a..ed0b35723e 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestVersionsMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseLatestVersionsMojoTest.java
@@ -16,7 +16,7 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.repository.RepositorySystem;
import org.codehaus.mojo.versions.api.PomHelper;
-import org.codehaus.mojo.versions.change.VersionChange;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
import org.codehaus.mojo.versions.utils.TestChangeRecorder;
import org.hamcrest.core.Is;
@@ -66,11 +66,14 @@ public void setUp() throws Exception
put( "other-artifact", new String[] {"1.0", "2.0"} );
}} );
+ changeRecorder = new TestChangeRecorder();
+
mojo = new UseLatestVersionsMojo( repositorySystemMock,
- null,
- artifactMetadataSourceMock,
- null,
- null )
+ null,
+ artifactMetadataSourceMock,
+ null,
+ null,
+ changeRecorder.asTestMap() )
{{
reactorProjects = emptyList();
MavenProject project = new MavenProject()
@@ -93,9 +96,7 @@ public void setUp() throws Exception
}};
setProject( project );
}};
- changeRecorder = new TestChangeRecorder();
setVariableValueToObject( mojo, "processDependencyManagement", false );
- setVariableValueToObject( mojo, "changeRecorder", changeRecorder );
}
@Test
@@ -115,8 +116,8 @@ public void testDependenciesDowngradeIncremental()
.thenReturn( true );
mojo.update( null );
}
- assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT", "1.1.0" ) ) );
+ assertThat( changeRecorder.getChanges(), hasItem(
+ new DefaultVersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT", "1.1.0" ) ) );
}
@Test
@@ -141,8 +142,8 @@ public void testDependenciesDowngradeMinor()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "dependency-artifact",
- "1.1.0-SNAPSHOT", "1.1.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "dependency-artifact",
+ "1.1.0-SNAPSHOT", "1.1.0" ) ) );
}
@Test
@@ -163,8 +164,8 @@ public void testDependenciesDowngradeMajor()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "dependency-artifact",
- "1.1.1-SNAPSHOT", "1.1.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "dependency-artifact",
+ "1.1.1-SNAPSHOT", "1.1.0" ) ) );
}
@Test
@@ -186,8 +187,8 @@ public void testDependencyManagementDowngrade()
.thenReturn( true );
mojo.update( null );
}
- assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT", "1.1.0" ) ) );
+ assertThat( changeRecorder.getChanges(), hasItem(
+ new DefaultVersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT", "1.1.0" ) ) );
}
@Test
@@ -218,8 +219,8 @@ public void testParentDowngrade()
.thenReturn( true );
mojo.update( null );
}
- assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT", "1.1.0" ) ) );
+ assertThat( changeRecorder.getChanges(), hasItem(
+ new DefaultVersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT", "1.1.0" ) ) );
}
@Test
@@ -248,9 +249,8 @@ public void testPoisonDependencyVersion()
}
// So, the regular update should take place despite an irregular, or — if I may — "poison", dependency
// being present in the dependency list
- assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT",
- "1.1.0" ) ) );
+ assertThat( changeRecorder.getChanges(), hasItem(
+ new DefaultVersionChange( "default-group", "dependency-artifact", "1.1.1-SNAPSHOT", "1.1.0" ) ) );
}
@Test
@@ -291,8 +291,7 @@ public void testIncludeFilter()
}
assertThat( changeRecorder.getChanges(), hasSize( 1 ) );
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "other-artifact", "1.0",
- "2.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "other-artifact", "1.0", "2.0" ) ) );
}
@Test
@@ -317,7 +316,7 @@ public void testExcludeFilter()
}
assertThat( changeRecorder.getChanges(), hasSize( 1 ) );
assertThat( changeRecorder.getChanges(),
- not( hasItem( new VersionChange( "default-group", "other-artifact", "1.0",
- "2.0" ) ) ) );
+ not( hasItem( new DefaultVersionChange( "default-group", "other-artifact", "1.0",
+ "2.0" ) ) ) );
}
}
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseReleasesMojoTest.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseReleasesMojoTest.java
index 6e2b40bfbf..fe28fdf43a 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseReleasesMojoTest.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/UseReleasesMojoTest.java
@@ -11,7 +11,7 @@
import org.apache.maven.plugin.testing.stubs.StubArtifactResolver;
import org.apache.maven.project.MavenProject;
import org.codehaus.mojo.versions.api.PomHelper;
-import org.codehaus.mojo.versions.change.VersionChange;
+import org.codehaus.mojo.versions.change.DefaultVersionChange;
import org.codehaus.mojo.versions.utils.DependencyBuilder;
import org.codehaus.mojo.versions.utils.TestChangeRecorder;
import org.junit.Before;
@@ -63,11 +63,10 @@ public void setUp() throws IllegalAccessException
{
changeRecorder = new TestChangeRecorder();
mojo = new UseReleasesMojo( mockRepositorySystem(),
- null, mockArtifactMetadataSource(),
- null, new StubArtifactResolver( new ArtifactStubFactory(),
- false, false ) );
+ null, mockArtifactMetadataSource(),
+ null, new StubArtifactResolver( new ArtifactStubFactory(), false, false ),
+ changeRecorder.asTestMap() );
setVariableValueToObject( mojo, "reactorProjects", emptyList() );
- setVariableValueToObject( mojo, "changeRecorder", changeRecorder );
mojo.project = new MavenProject()
{{
setModel( new Model()
@@ -102,8 +101,8 @@ public void testProcessParent()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "artifactA",
- "1.0.0-SNAPSHOT", "1.0.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "artifactA",
+ "1.0.0-SNAPSHOT", "1.0.0" ) ) );
}
@Test
@@ -126,8 +125,8 @@ public void testReplaceSnapshotWithRelease()
mojo.update( null );
}
assertThat( changeRecorder.getChanges(),
- hasItem( new VersionChange( "default-group", "artifactA",
- "1.0.0-SNAPSHOT", "1.0.0" ) ) );
+ hasItem( new DefaultVersionChange( "default-group", "artifactA",
+ "1.0.0-SNAPSHOT", "1.0.0" ) ) );
}
@Test
diff --git a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/utils/TestChangeRecorder.java b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/utils/TestChangeRecorder.java
index 2966cafe6e..7d9540cec6 100644
--- a/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/utils/TestChangeRecorder.java
+++ b/versions-maven-plugin/src/test/java/org/codehaus/mojo/versions/utils/TestChangeRecorder.java
@@ -19,25 +19,31 @@
* under the License.
*/
-import java.io.OutputStream;
+import javax.inject.Named;
+
+import java.nio.file.Path;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
-import org.codehaus.mojo.versions.change.VersionChange;
-import org.codehaus.mojo.versions.recording.ChangeRecorder;
+import org.codehaus.mojo.versions.api.change.VersionChange;
+import org.codehaus.mojo.versions.api.recording.ChangeRecord;
+import org.codehaus.mojo.versions.api.recording.ChangeRecorder;
+@Named( "test" )
public class TestChangeRecorder implements ChangeRecorder
{
private final List changes = new LinkedList<>();
@Override
- public void recordUpdate( String kind, String groupId, String artifactId, String oldVersion, String newVersion )
+ public void recordUpdate( ChangeRecord changeRecord )
{
- changes.add( new VersionChange( groupId, artifactId, oldVersion, newVersion ) );
+ changes.add( changeRecord.getVersionChange() );
}
@Override
- public void serialize( OutputStream outputStream )
+ public void serialize( Path outputPath )
{
}
@@ -45,4 +51,11 @@ public List getChanges()
{
return changes;
}
-}
\ No newline at end of file
+
+ public Map asTestMap()
+ {
+ HashMap map = new HashMap<>();
+ map.put( "none", this );
+ return map;
+ }
+}