From 5a330002c57adaf8a6d4180618132c75bfcbb7fd Mon Sep 17 00:00:00 2001 From: ajmichael Date: Mon, 26 Feb 2018 08:58:55 -0800 Subject: Change android_library .aar timestamp and open-source AarGeneratorActionTest. See https://github.com/bazelbuild/bazel/issues/4614 and https://github.com/bazelbuild/bazel/commit/bcefd9833cb5620fef8a27c37c2808a66b57c7e6. RELNOTES: None PiperOrigin-RevId: 187029042 --- .../devtools/build/android/AarGeneratorAction.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/tools/android/java/com/google/devtools/build') diff --git a/src/tools/android/java/com/google/devtools/build/android/AarGeneratorAction.java b/src/tools/android/java/com/google/devtools/build/android/AarGeneratorAction.java index 20e9e6c9d7..88618ed835 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AarGeneratorAction.java +++ b/src/tools/android/java/com/google/devtools/build/android/AarGeneratorAction.java @@ -39,6 +39,8 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.ArrayList; import java.util.Collection; import java.util.LinkedList; @@ -65,7 +67,11 @@ import java.util.zip.ZipOutputStream; * */ public class AarGeneratorAction { - private static final Long EPOCH = 0L; + public static final long DEFAULT_TIMESTAMP = + LocalDateTime.of(2010, 1, 1, 0, 0, 0) + .atZone(ZoneId.systemDefault()) + .toInstant() + .toEpochMilli(); private static final Logger logger = Logger.getLogger(AarGeneratorAction.class.getName()); @@ -213,13 +219,13 @@ public class AarGeneratorAction { try (final ZipOutputStream zipOut = new ZipOutputStream(new BufferedOutputStream(Files.newOutputStream(aar)))) { ZipEntry manifestEntry = new ZipEntry("AndroidManifest.xml"); - manifestEntry.setTime(EPOCH); + manifestEntry.setTime(DEFAULT_TIMESTAMP); zipOut.putNextEntry(manifestEntry); zipOut.write(Files.readAllBytes(manifest)); zipOut.closeEntry(); ZipEntry classJar = new ZipEntry("classes.jar"); - classJar.setTime(EPOCH); + classJar.setTime(DEFAULT_TIMESTAMP); zipOut.putNextEntry(classJar); zipOut.write(Files.readAllBytes(classes)); zipOut.closeEntry(); @@ -229,7 +235,7 @@ public class AarGeneratorAction { resWriter.writeEntries(); ZipEntry r = new ZipEntry("R.txt"); - r.setTime(EPOCH); + r.setTime(DEFAULT_TIMESTAMP); zipOut.putNextEntry(r); zipOut.write(Files.readAllBytes(rtxt)); zipOut.closeEntry(); @@ -241,7 +247,7 @@ public class AarGeneratorAction { assetWriter.writeEntries(); } } - aar.toFile().setLastModified(EPOCH); + aar.toFile().setLastModified(DEFAULT_TIMESTAMP); } private static class ZipDirectoryWriter extends SimpleFileVisitor { @@ -281,7 +287,7 @@ public class AarGeneratorAction { private void writeFileEntry(Path file) throws IOException { ZipEntry entry = new ZipEntry(new File(dirName, root.relativize(file).toString()).toString()); - entry.setTime(EPOCH); + entry.setTime(DEFAULT_TIMESTAMP); zipOut.putNextEntry(entry); zipOut.write(Files.readAllBytes(file)); zipOut.closeEntry(); @@ -290,7 +296,7 @@ public class AarGeneratorAction { private void writeDirectoryEntry(Path dir) throws IOException { ZipEntry entry = new ZipEntry(new File(dirName, root.relativize(dir).toString()).toString() + "/"); - entry.setTime(EPOCH); + entry.setTime(DEFAULT_TIMESTAMP); zipOut.putNextEntry(entry); zipOut.closeEntry(); } -- cgit v1.2.3