From d9637f13af2150a7815eb5d2222332599a6b07a1 Mon Sep 17 00:00:00 2001 From: Anukalp Date: Sun, 25 Jan 2026 11:19:49 +0530 Subject: [PATCH 1/6] Remove deprecated WriterFactory and MavenXpp3Writer usage --- .../apache/maven/buildcache/checksum/MavenProjectInput.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java index 4f05eb36..e4cd3174 100644 --- a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java +++ b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java @@ -23,6 +23,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.io.OutputStreamWriter; import java.io.Writer; import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; @@ -84,7 +85,6 @@ import org.apache.maven.model.Resource; import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.apache.maven.project.MavenProject; -import org.codehaus.plexus.util.WriterFactory; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.artifact.DefaultArtifactType; import org.eclipse.aether.resolution.ArtifactRequest; @@ -342,7 +342,7 @@ private boolean checkItemMatchesBaseline(ProjectsInputInfo baselineBuild, Digest private String getEffectivePom(Model prototype) throws IOException { ByteArrayOutputStream output = new ByteArrayOutputStream(); - try (Writer writer = WriterFactory.newXmlWriter(output)) { + try (Writer writer = new OutputStreamWriter(output, StandardCharsets.UTF_8)) { new MavenXpp3Writer().write(writer, prototype); // normalize env specifics From 60849e9016852e1f0c4585b4745cec22b6bb64e1 Mon Sep 17 00:00:00 2001 From: Anukalp Date: Sat, 21 Mar 2026 17:12:35 +0530 Subject: [PATCH 2/6] Remove deprecated WriterFactory and MavenXpp3Writer usage --- .../checksum/MavenProjectInput.java | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java index e4cd3174..cb3b5168 100644 --- a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java +++ b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java @@ -23,9 +23,6 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.FileVisitResult; import java.nio.file.Files; @@ -83,7 +80,7 @@ import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginExecution; import org.apache.maven.model.Resource; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; +import org.apache.maven.model.io.DefaultModelWriter; import org.apache.maven.project.MavenProject; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.artifact.DefaultArtifactType; @@ -216,8 +213,6 @@ public ProjectsInputInfo calculateChecksum() throws IOException { projectVersion.setIsText("yes"); projectVersion.setValue(project.getVersion()); items.add(projectVersion); - - checksum.update(project.getVersion().getBytes(StandardCharsets.UTF_8)); } DigestItem effectivePomChecksum = DigestUtils.pom(checksum, effectivePom); @@ -341,15 +336,12 @@ private boolean checkItemMatchesBaseline(ProjectsInputInfo baselineBuild, Digest */ private String getEffectivePom(Model prototype) throws IOException { ByteArrayOutputStream output = new ByteArrayOutputStream(); + new DefaultModelWriter().write(output, null, prototype); - try (Writer writer = new OutputStreamWriter(output, StandardCharsets.UTF_8)) { - new MavenXpp3Writer().write(writer, prototype); - - // normalize env specifics - final String[] searchList = {baseDirPath.toString(), "\\", "windows", "linux"}; - final String[] replacementList = {"", "/", "os.classifier", "os.classifier"}; - return replaceEachRepeatedly(output.toString(), searchList, replacementList); - } + // normalize env specifics + final String[] searchList = {baseDirPath.toString(), "\\", "windows", "linux"}; + final String[] replacementList = {"", "/", "os.classifier", "os.classifier"}; + return replaceEachRepeatedly(output.toString(), searchList, replacementList); } private SortedSet getInputFiles() { From 1a02f839a60e76239369ee31c0617df531773728 Mon Sep 17 00:00:00 2001 From: Anukalp Date: Sun, 22 Mar 2026 18:32:52 +0530 Subject: [PATCH 3/6] Remove deprecated WriterFactory and MavenXpp3Writer usage --- .../org/apache/maven/buildcache/checksum/MavenProjectInput.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java index cb3b5168..af94b10d 100644 --- a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java +++ b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java @@ -336,7 +336,7 @@ private boolean checkItemMatchesBaseline(ProjectsInputInfo baselineBuild, Digest */ private String getEffectivePom(Model prototype) throws IOException { ByteArrayOutputStream output = new ByteArrayOutputStream(); - new DefaultModelWriter().write(output, null, prototype); + new DefaultModelWriter().write(output, Collections.emptyMap(), prototype); // normalize env specifics final String[] searchList = {baseDirPath.toString(), "\\", "windows", "linux"}; From 6a41be949b6844e9e111631eb2a318873cc47ae5 Mon Sep 17 00:00:00 2001 From: Anukalp Date: Mon, 13 Apr 2026 21:54:32 +0530 Subject: [PATCH 4/6] fix JDK 17 test failures --- .../apache/maven/buildcache/checksum/MavenProjectInput.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java index af94b10d..b51dd9c6 100644 --- a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java +++ b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java @@ -341,7 +341,8 @@ private String getEffectivePom(Model prototype) throws IOException { // normalize env specifics final String[] searchList = {baseDirPath.toString(), "\\", "windows", "linux"}; final String[] replacementList = {"", "/", "os.classifier", "os.classifier"}; - return replaceEachRepeatedly(output.toString(), searchList, replacementList); + return replaceEachRepeatedly( + output.toString(java.nio.charset.StandardCharsets.UTF_8.name()), searchList, replacementList); } private SortedSet getInputFiles() { From b783ea598b37c9e7b0655b7f3048b2a04daf75fe Mon Sep 17 00:00:00 2001 From: Anukalp Date: Tue, 14 Apr 2026 08:23:54 +0530 Subject: [PATCH 5/6] fix jdk 17 test failures --- .../maven/buildcache/checksum/MavenProjectInput.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java index b51dd9c6..66cc5e86 100644 --- a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java +++ b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java @@ -341,8 +341,13 @@ private String getEffectivePom(Model prototype) throws IOException { // normalize env specifics final String[] searchList = {baseDirPath.toString(), "\\", "windows", "linux"}; final String[] replacementList = {"", "/", "os.classifier", "os.classifier"}; - return replaceEachRepeatedly( - output.toString(java.nio.charset.StandardCharsets.UTF_8.name()), searchList, replacementList); + + //Normalize output to ensure consistent encoding, line ending, and whitespace + String result = output.toString(java.nio.charset.StandardCharsets.UTF_8.name()); + result = result.replace("\r\n", "\n"); + result = result.trim(); + + return replaceEachRepeatedly(result, searchList, replacementList); } private SortedSet getInputFiles() { From f48988937ee1ffb43d078b6a0f679b9b68a4efa9 Mon Sep 17 00:00:00 2001 From: Anukalp Date: Sun, 19 Apr 2026 17:28:43 +0530 Subject: [PATCH 6/6] fix format violations --- .../maven/buildcache/checksum/MavenProjectInput.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java index 66cc5e86..6c75ee36 100644 --- a/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java +++ b/src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java @@ -23,6 +23,9 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.FileVisitResult; import java.nio.file.Files; @@ -80,7 +83,7 @@ import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginExecution; import org.apache.maven.model.Resource; -import org.apache.maven.model.io.DefaultModelWriter; +import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.apache.maven.project.MavenProject; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.artifact.DefaultArtifactType; @@ -213,6 +216,8 @@ public ProjectsInputInfo calculateChecksum() throws IOException { projectVersion.setIsText("yes"); projectVersion.setValue(project.getVersion()); items.add(projectVersion); + + checksum.update(project.getVersion().getBytes(StandardCharsets.UTF_8)); } DigestItem effectivePomChecksum = DigestUtils.pom(checksum, effectivePom); @@ -336,13 +341,14 @@ private boolean checkItemMatchesBaseline(ProjectsInputInfo baselineBuild, Digest */ private String getEffectivePom(Model prototype) throws IOException { ByteArrayOutputStream output = new ByteArrayOutputStream(); - new DefaultModelWriter().write(output, Collections.emptyMap(), prototype); + try (Writer writer = new OutputStreamWriter(output, StandardCharsets.UTF_8)) { + new MavenXpp3Writer().write(output, prototype); + } // normalize env specifics final String[] searchList = {baseDirPath.toString(), "\\", "windows", "linux"}; final String[] replacementList = {"", "/", "os.classifier", "os.classifier"}; - //Normalize output to ensure consistent encoding, line ending, and whitespace String result = output.toString(java.nio.charset.StandardCharsets.UTF_8.name()); result = result.replace("\r\n", "\n"); result = result.trim();