File reproducible-from-environment.patch of Package moditect

--- moditect-1.2.2.Final/maven-plugin/pom.xml	2024-06-30 18:29:07.000000000 +0200
+++ moditect-1.2.2.Final/maven-plugin/pom.xml	2025-07-16 16:50:21.156822720 +0200
@@ -61,6 +61,11 @@
         </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>
             <version>${maven.version}</version>
             <scope>provided</scope>
--- moditect-1.2.2.Final/maven-plugin/src/main/java/org/moditect/mavenplugin/add/AddModuleInfoMojo.java	2024-06-30 18:29:07.000000000 +0200
+++ moditect-1.2.2.Final/maven-plugin/src/main/java/org/moditect/mavenplugin/add/AddModuleInfoMojo.java	2025-07-16 16:48:02.651690895 +0200
@@ -31,6 +31,7 @@
 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;
@@ -493,44 +494,8 @@
 
     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;
-            }
+            return MavenArchiver.parseBuildOutputTimestamp(value).orElse(null);
         }
     }
 }
openSUSE Build Service is sponsored by