File 0001-Use-maven-archiver-to-parse-ouputTimestamp.patch of Package moditect
From 444f78dfd8e6919faccc001887597fb3e69e961a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Wed, 16 Jul 2025 17:46:10 +0200
Subject: [PATCH] Use maven-archiver to parse ouputTimestamp
---
maven-plugin/pom.xml | 5 ++
.../mavenplugin/add/AddModuleInfoMojo.java | 53 ++-----------------
2 files changed, 8 insertions(+), 50 deletions(-)
diff --git a/maven-plugin/pom.xml b/maven-plugin/pom.xml
index ea2ca1a..5756d49 100644
--- a/maven-plugin/pom.xml
+++ b/maven-plugin/pom.xml
@@ -59,6 +59,11 @@
<artifactId>moditect</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-archiver</artifactId>
+ <version>3.6.2</version>
+ </dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
diff --git a/maven-plugin/src/main/java/org/moditect/mavenplugin/add/AddModuleInfoMojo.java b/maven-plugin/src/main/java/org/moditect/mavenplugin/add/AddModuleInfoMojo.java
index cb5299d..68e0650 100644
--- a/maven-plugin/src/main/java/org/moditect/mavenplugin/add/AddModuleInfoMojo.java
+++ b/maven-plugin/src/main/java/org/moditect/mavenplugin/add/AddModuleInfoMojo.java
@@ -12,11 +12,6 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
-import java.time.Instant;
-import java.time.OffsetDateTime;
-import java.time.ZoneOffset;
-import java.time.format.DateTimeParseException;
-import java.time.temporal.ChronoUnit;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashMap;
@@ -31,6 +26,7 @@ import java.util.jar.JarFile;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import org.apache.maven.archiver.MavenArchiver;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
@@ -189,7 +185,7 @@ public class AddModuleInfoMojo extends AbstractMojo {
outputPath,
jvmVersion,
overwriteExistingFiles,
- InstantConverter.convert(outputTimestamp));
+ MavenArchiver.parseBuildOutputTimestamp(outputTimestamp).orElse(null));
addModuleInfo.run();
@@ -226,7 +222,7 @@ public class AddModuleInfoMojo extends AbstractMojo {
outputPath,
jvmVersion,
overwriteExistingFiles,
- InstantConverter.convert(outputTimestamp));
+ MavenArchiver.parseBuildOutputTimestamp(outputTimestamp).orElse(null));
addModuleInfo.run();
try {
@@ -490,47 +486,4 @@ public class AddModuleInfoMojo extends AbstractMojo {
return null;
}
-
- private static class InstantConverter {
-
- private static final Instant DATE_MIN = Instant.parse("1980-01-01T00:00:02Z");
- private static final Instant DATE_MAX = Instant.parse("2099-12-31T23:59:59Z");
-
- public static Instant convert(String value) {
- if (value == null) {
- return null;
- }
-
- // Number representing seconds since the epoch
- if (!value.isEmpty() && isNumeric(value)) {
- return Instant.ofEpochSecond(Long.parseLong(value.trim()));
- }
-
- try {
- // Parse the date in UTC such as '2011-12-03T10:15:30Z' or with an offset '2019-10-05T20:37:42+06:00'.
- final Instant date = OffsetDateTime.parse(value)
- .withOffsetSameInstant(ZoneOffset.UTC).truncatedTo(ChronoUnit.SECONDS).toInstant();
-
- if (date.isBefore(DATE_MIN) || date.isAfter(DATE_MAX)) {
- throw new IllegalArgumentException("'" + date + "' is not within the valid range "
- + DATE_MIN + " to " + DATE_MAX);
- }
- return date;
- }
- catch (DateTimeParseException pe) {
- throw new IllegalArgumentException("Invalid project.build.outputTimestamp value '" + value + "'",
- pe);
- }
- }
-
- private static boolean isNumeric(String str) {
- try {
- Long.parseLong(str.trim());
- return true;
- }
- catch (NumberFormatException e) {
- return false;
- }
- }
- }
}
--
2.50.1