Skip to content

Commit 70c1930

Browse files
committed
#979: overhaul of the updates logger; added json and csv + a new appendable xml which records multiple executions
Added changeRecorder to display-property-updates, display-parent-updates, display-dependency-updates, display-extension-updates, display-plugin-updates; Added changeRecorder to display-property-updates, display-parent-updates, display-dependency-updates, display-extension-updates
1 parent 95e3695 commit 70c1930

File tree

150 files changed

+4300
-1892
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+4300
-1892
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ target
77
.vscode
88
.checkstyle
99
/.factorypath
10+
/hs_err_pid*.log

pom.xml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,17 @@
148148
<invoker.parallelThreads>0.75C</invoker.parallelThreads>
149149
<!-- mono-module doesn't require site:stage for scm-publish -->
150150
<project.build.outputTimestamp>2025-09-22T06:07:04Z</project.build.outputTimestamp>
151+
152+
<!-- dependencies for version changes model -->
153+
<jaxbApi.version>2.3.1</jaxbApi.version>
154+
<jaxbRuntime.version>2.3.9</jaxbRuntime.version>
155+
<jacksonDatabind.version>2.20.0</jacksonDatabind.version>
156+
<jacksonDataformatXml.version>2.20.0</jacksonDataformatXml.version>
157+
<jaxb2MavenPlugin.version>2.5.0</jaxb2MavenPlugin.version>
158+
<jaxb2FluentApi.version>3.0</jaxb2FluentApi.version>
159+
<jaxb2BasicsAnnotate.version>1.1.0</jaxb2BasicsAnnotate.version>
160+
<jacksonDataformatCsv.version>2.17.2</jacksonDataformatCsv.version>
161+
<jacksonDatatypeJsr310.version>2.19.0</jacksonDatatypeJsr310.version>
151162
</properties>
152163

153164
<dependencyManagement>
@@ -388,6 +399,37 @@
388399
<artifactId>wagon-provider-api</artifactId>
389400
<version>3.5.3</version>
390401
</dependency>
402+
<dependency>
403+
<groupId>org.glassfish.jaxb</groupId>
404+
<artifactId>jaxb-runtime</artifactId>
405+
<version>${jaxbRuntime.version}</version>
406+
<scope>runtime</scope>
407+
</dependency>
408+
<dependency>
409+
<groupId>com.fasterxml.jackson.core</groupId>
410+
<artifactId>jackson-databind</artifactId>
411+
<version>${jacksonDatabind.version}</version>
412+
</dependency>
413+
<dependency>
414+
<groupId>com.fasterxml.jackson.dataformat</groupId>
415+
<artifactId>jackson-dataformat-xml</artifactId>
416+
<version>${jacksonDataformatXml.version}</version>
417+
</dependency>
418+
<dependency>
419+
<groupId>javax.xml.bind</groupId>
420+
<artifactId>jaxb-api</artifactId>
421+
<version>${jaxbApi.version}</version>
422+
</dependency>
423+
<dependency>
424+
<groupId>com.fasterxml.jackson.dataformat</groupId>
425+
<artifactId>jackson-dataformat-csv</artifactId>
426+
<version>${jacksonDataformatCsv.version}</version>
427+
</dependency>
428+
<dependency>
429+
<groupId>com.fasterxml.jackson.datatype</groupId>
430+
<artifactId>jackson-datatype-jsr310</artifactId>
431+
<version>${jacksonDatatypeJsr310.version}</version>
432+
</dependency>
391433
</dependencies>
392434
</dependencyManagement>
393435

versions-api/pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@
1212
<name>Versions API</name>
1313
<description>Extension API for Versions Plugin</description>
1414

15+
<dependencies>
16+
<dependency>
17+
<groupId>org.codehaus.mojo.versions</groupId>
18+
<artifactId>versions-model</artifactId>
19+
<version>${project.version}</version>
20+
</dependency>
21+
<dependency>
22+
<groupId>org.apache.maven</groupId>
23+
<artifactId>maven-core</artifactId>
24+
<scope>provided</scope>
25+
</dependency>
26+
</dependencies>
27+
1528
<reporting>
1629
<plugins>
1730
<plugin>

versions-api/src/main/java/org/codehaus/mojo/versions/api/change/DependencyVersionChange.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
*
2323
* @author Slawomir Jaranowski
2424
* @since 2.14.0
25+
* @deprecated use classes from {@code versions-model}
2526
*/
27+
@Deprecated
2628
public interface DependencyVersionChange extends VersionChange {
2729
/**
2830
* Returns the groupId of the dependency

versions-api/src/main/java/org/codehaus/mojo/versions/api/change/PropertyVersionChange.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
*
2323
* @author Andrzej Jarmoniuk
2424
* @since 2.15.0
25+
* @deprecated use classes from {@code versions-model}
2526
*/
27+
@Deprecated
2628
public interface PropertyVersionChange extends VersionChange {
2729

2830
/**

versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecord.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
* @author Slawomir Jaranowski
2626
* @since 2.14.0
2727
* @param <T> concrete {@link VersionChange} sub-interface
28+
* @deprecated use classes from {@code versions-model}
2829
*/
30+
@Deprecated
2931
public interface ChangeRecord<T extends VersionChange> {
3032
/**
3133
* Returns the details about changed item

versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/ChangeRecorder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
*
2626
* @author Slawomir Jaranowski
2727
* @since 2.14.0
28+
* @deprecated use {@link VersionChangeRecorder} and {@code versions-model}
2829
*/
30+
@Deprecated
2931
public interface ChangeRecorder {
3032
/**
3133
* Record that a dependency was updated.

versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/DependencyChangeRecord.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
*
2525
* @author Slawomir Jaranowski
2626
* @since 2.14.0
27+
* @deprecated use classes from {@code versions-model}
2728
*/
29+
@Deprecated
2830
public interface DependencyChangeRecord extends ChangeRecord<DependencyVersionChange> {
2931
/**
3032
* Describes where version item is updated.

versions-api/src/main/java/org/codehaus/mojo/versions/api/recording/PropertyChangeRecord.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,7 @@
2424
*
2525
* @author Slawomir Jaranowski
2626
* @since 2.14.0
27+
* @deprecated use classes from {@code versions-model}
2728
*/
29+
@Deprecated
2830
public interface PropertyChangeRecord extends ChangeRecord<PropertyVersionChange> {}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package org.codehaus.mojo.versions.api.recording;
2+
3+
/*
4+
* Copyright MojoHaus and Contributors
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*
18+
*/
19+
20+
import java.io.IOException;
21+
import java.nio.file.Path;
22+
23+
import org.codehaus.mojo.versions.model.VersionChange;
24+
25+
/**
26+
* Interface for implement a recorder of version changes.
27+
*
28+
* @since 2.20.0
29+
*/
30+
public interface VersionChangeRecorder {
31+
/**
32+
* Record that a version change
33+
*
34+
* @param versionChange a {@link VersionChange} object describing the change
35+
* @since 2.20.0
36+
*/
37+
void recordChange(VersionChange versionChange);
38+
39+
/**
40+
* Write the current set of changes to the given output path.
41+
* <p>
42+
* Implementation is responsible for creating all missing directories.
43+
* <p>
44+
* Output should not be created for empty record sets.
45+
*
46+
* @param outputPath The output path, can be null, provided by <code>changeRecorderOutputFile</code>
47+
* plugin parameters
48+
* @throws IOException On write and/or I/O errors
49+
* @since 2.20.0
50+
*/
51+
void writeReport(Path outputPath) throws IOException;
52+
53+
/**
54+
* Provides the default output file name
55+
*
56+
* @return default file name
57+
*/
58+
String getDefaultFileName();
59+
}

0 commit comments

Comments
 (0)