|
|
|
@@ -1,119 +0,0 @@
|
|
|
|
|
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
|
|
|
|
|
|