From 6d88f60d6dc9a270b1ba98e02faf5c749104afea Mon Sep 17 00:00:00 2001 From: Jeremy Norris Date: Mon, 26 Aug 2024 17:59:10 -0500 Subject: [PATCH] Restore maven-archiver as a compile scoped dependency to fix reproducible builds (#736) Additionally use non-deprecated MavenArchiver.parseBuildOutputTimestamp() method --- pom.xml | 2 +- src/it/project-build-outputTimestamp/pom.xml | 36 +++++++++++++++++++ .../src/deb/control/control | 7 ++++ .../java/org/vafer/jdeb/examples/Main.java | 7 ++++ .../verify.groovy | 1 + .../jdeb/utils/OutputTimestampResolver.java | 9 ++--- 6 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 src/it/project-build-outputTimestamp/pom.xml create mode 100644 src/it/project-build-outputTimestamp/src/deb/control/control create mode 100644 src/it/project-build-outputTimestamp/src/main/java/org/vafer/jdeb/examples/Main.java create mode 100644 src/it/project-build-outputTimestamp/verify.groovy diff --git a/pom.xml b/pom.xml index 1ebe2a2f4..0817d43dd 100644 --- a/pom.xml +++ b/pom.xml @@ -122,10 +122,10 @@ ${maven.scope} + org.apache.maven maven-archiver 3.6.2 - ${maven.scope} org.apache.ant diff --git a/src/it/project-build-outputTimestamp/pom.xml b/src/it/project-build-outputTimestamp/pom.xml new file mode 100644 index 000000000..5f3258285 --- /dev/null +++ b/src/it/project-build-outputTimestamp/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + org.vafer + jdeb-it + 1.0 + description from pom + + UTF-8 + UTF-8 + 2024-08-26T14:00:00Z + 1.8 + 1.8 + + + + + org.vafer + jdeb + @project.version@ + + + package + + jdeb + + + true + ${basedir}/src/deb/control + + + + + + + diff --git a/src/it/project-build-outputTimestamp/src/deb/control/control b/src/it/project-build-outputTimestamp/src/deb/control/control new file mode 100644 index 000000000..6cfaa51f1 --- /dev/null +++ b/src/it/project-build-outputTimestamp/src/deb/control/control @@ -0,0 +1,7 @@ +Package: [[name]] +Version: [[version]] +Section: misc +Priority: low +Architecture: all +Description: [[description]] +Maintainer: tcurdt@vafer.org diff --git a/src/it/project-build-outputTimestamp/src/main/java/org/vafer/jdeb/examples/Main.java b/src/it/project-build-outputTimestamp/src/main/java/org/vafer/jdeb/examples/Main.java new file mode 100644 index 000000000..62a24347d --- /dev/null +++ b/src/it/project-build-outputTimestamp/src/main/java/org/vafer/jdeb/examples/Main.java @@ -0,0 +1,7 @@ +package org.vafer.jdeb.examples; + +public class Main { + public static void main(String[] args) { + System.out.println("jdeb example!"); + } +} diff --git a/src/it/project-build-outputTimestamp/verify.groovy b/src/it/project-build-outputTimestamp/verify.groovy new file mode 100644 index 000000000..d2980bc54 --- /dev/null +++ b/src/it/project-build-outputTimestamp/verify.groovy @@ -0,0 +1 @@ +assert new File( basedir, 'target/jdeb-it_1.0_all.deb' ).exists(); diff --git a/src/main/java/org/vafer/jdeb/utils/OutputTimestampResolver.java b/src/main/java/org/vafer/jdeb/utils/OutputTimestampResolver.java index f64f9e241..1f2974040 100644 --- a/src/main/java/org/vafer/jdeb/utils/OutputTimestampResolver.java +++ b/src/main/java/org/vafer/jdeb/utils/OutputTimestampResolver.java @@ -1,6 +1,7 @@ package org.vafer.jdeb.utils; -import java.util.Date; +import java.time.Instant; +import java.util.Optional; import java.util.concurrent.TimeUnit; import org.apache.maven.archiver.MavenArchiver; @@ -21,10 +22,10 @@ public OutputTimestampResolver(Console console) { public Long resolveOutputTimestamp(String paramValue) { if (paramValue != null) { - Date outputDate = new MavenArchiver().parseOutputTimestamp(paramValue); - if (outputDate != null) { + Optional outputDate = MavenArchiver.parseBuildOutputTimestamp(paramValue); + if (outputDate.isPresent()) { console.info("Accepted outputTimestamp parameter: " + paramValue); - return outputDate.getTime(); + return outputDate.get().toEpochMilli(); } }