Skip to content

Commit 941f124

Browse files
ted-xiecopybara-github
authored andcommitted
Don't use Zip-related classes from Bazel's zip library
Removes another dependency on all_android_tool.jar for OSS rules_android. PiperOrigin-RevId: 747417644 Change-Id: I5171ced52dce2ee2b2c02f0ceab7e9c410435ff1
1 parent 61ee92d commit 941f124

4 files changed

Lines changed: 19 additions & 27 deletions

File tree

src/tools/java/com/google/devtools/build/android/BUILD

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,6 @@ java_binary(
2525
runtime_deps = [":android_builder_lib"],
2626
)
2727

28-
run_singlejar(
29-
name = "zip_jar_gen",
30-
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
31-
out = "zip.jar",
32-
include_prefixes = [
33-
"com/google/devtools/build/zip/",
34-
],
35-
)
36-
37-
java_import(
38-
name = "zip_jar",
39-
jars = [":zip_jar_gen"],
40-
)
41-
4228
run_singlejar(
4329
name = "singlejar_jar_gen",
4430
srcs = ["@android_tools//:all_android_tools_deploy.jar"],
@@ -125,7 +111,6 @@ java_library(
125111
":dependency_info",
126112
":kotlin_jar",
127113
":singlejar_jar",
128-
":zip_jar",
129114
"//src/tools/java/com/google/devtools/build/android/junctions",
130115
"//src/tools/java/com/google/devtools/build/android/proto:resources_java_proto",
131116
"//src/tools/java/com/google/devtools/build/android/proto:serialize_format_java_pb",
@@ -151,7 +136,6 @@ java_library(
151136
],
152137
deps = [
153138
":android_builder_lib",
154-
":zip_jar",
155139
"//src/tools/java/com/google/devtools/build/android/r8",
156140
"//src/tools/java/com/google/devtools/build/android/r8:constants",
157141
"@rules_android_maven//:com_beust_jcommander",

src/tools/java/com/google/devtools/build/android/DesugarDexShardingAction.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
import com.google.devtools.build.android.r8.CompatDexBuilder;
2828
import com.google.devtools.build.android.r8.Constants;
2929
import com.google.devtools.build.android.r8.Desugar;
30-
import com.google.devtools.build.zip.ZipFileEntry;
31-
import com.google.devtools.build.zip.ZipReader;
3230
import java.io.BufferedReader;
3331
import java.io.FileInputStream;
3432
import java.io.FileOutputStream;
@@ -39,6 +37,7 @@
3937
import java.nio.file.attribute.FileTime;
4038
import java.util.ArrayList;
4139
import java.util.Arrays;
40+
import java.util.Enumeration;
4241
import java.util.List;
4342
import java.util.Set;
4443
import java.util.concurrent.ExecutionException;
@@ -108,8 +107,10 @@ public static class Options {
108107
private DesugarDexShardingAction() {}
109108

110109
private static boolean hasCode(Path in) throws IOException {
111-
try (ZipReader zip = new ZipReader(in.toFile())) {
112-
for (ZipFileEntry entry : zip.entries()) {
110+
try (ZipFile zip = new ZipFile(in.toFile())) {
111+
Enumeration<? extends ZipEntry> entries = zip.entries();
112+
while (entries.hasMoreElements()) {
113+
ZipEntry entry = entries.nextElement();
113114
if (entry.getName().endsWith(".class") || entry.getName().endsWith(".dex")) {
114115
return true;
115116
}

src/tools/java/com/google/devtools/build/android/ZipFilterAction.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,21 @@
2828
import com.google.common.collect.Multimap;
2929
import com.google.devtools.build.singlejar.ZipCombiner;
3030
import com.google.devtools.build.singlejar.ZipCombiner.OutputMode;
31-
import com.google.devtools.build.zip.ZipFileEntry;
32-
import com.google.devtools.build.zip.ZipReader;
3331
import java.io.IOException;
3432
import java.io.OutputStream;
3533
import java.nio.file.FileSystems;
3634
import java.nio.file.Files;
3735
import java.nio.file.Path;
3836
import java.util.Collection;
37+
import java.util.Enumeration;
3938
import java.util.LinkedHashSet;
4039
import java.util.List;
4140
import java.util.Set;
4241
import java.util.concurrent.TimeUnit;
4342
import java.util.logging.Logger;
4443
import java.util.regex.Pattern;
44+
import java.util.zip.ZipEntry;
45+
import java.util.zip.ZipFile;
4546

4647
/**
4748
* Action to filter entries out of a Zip file.
@@ -201,8 +202,11 @@ static Multimap<String, Long> getEntriesToOmit(
201202

202203
ImmutableSetMultimap.Builder<String, Long> entriesToOmit = ImmutableSetMultimap.builder();
203204
for (Path filterZip : filterZips) {
204-
try (ZipReader zip = new ZipReader(filterZip.toFile())) {
205-
for (ZipFileEntry entry : zip.entries()) {
205+
try (ZipFile zf = new ZipFile(filterZip.toFile())) {
206+
Enumeration<? extends ZipEntry> entries = zf.entries();
207+
208+
while (entries.hasMoreElements()) {
209+
ZipEntry entry = entries.nextElement();
206210
if (filterTypes.isEmpty() || filterPattern.matcher(entry.getName()).matches()) {
207211
entriesToOmit.put(entry.getName(), entry.getCrc());
208212
}
@@ -234,8 +238,11 @@ static int run(String[] args) throws IOException {
234238
logger.fine(String.format("Filter created in %dms", timer.elapsed(TimeUnit.MILLISECONDS)));
235239

236240
ImmutableMap.Builder<String, Long> inputEntries = ImmutableMap.builder();
237-
try (ZipReader input = new ZipReader(options.inputZip.toFile())) {
238-
for (ZipFileEntry entry : input.entries()) {
241+
try (ZipFile zf = new ZipFile(options.inputZip.toFile())) {
242+
Enumeration<? extends ZipEntry> entries = zf.entries();
243+
244+
while (entries.hasMoreElements()) {
245+
ZipEntry entry = entries.nextElement();
239246
inputEntries.put(entry.getName(), entry.getCrc());
240247
}
241248
}

src/tools/javatests/com/google/devtools/build/android/ZipFilterActionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ private List<String> outputEntriesWithArgs(ImmutableList<String> args, File outp
238238
"--outputMode", "DONT_CARE",
239239
"--checkHashMismatch", "IGNORE");
240240
thrown.expect(ZipException.class);
241-
thrown.expectMessage("Zip file 'filter1' is malformed");
241+
thrown.expectMessage("zip file is empty");
242242
ZipFilterAction.run(args.toArray(new String[0]));
243243
}
244244

0 commit comments

Comments
 (0)