diff options
author | Joe Baker-Malone <jbakermalone@google.com> | 2023-05-05 00:21:57 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-05-05 00:21:57 +0000 |
commit | c3223a2c45534d0c752c3c4a31f5acbb97b5ed58 (patch) | |
tree | 5d1f4e8fefa0df82f86b0960eadd3580f4e35f64 | |
parent | d72f92961db54c1639acc8fd593155b0490f9f39 (diff) | |
parent | 6c537075379dff3d5d7574b08cf1097c6a2b47f2 (diff) | |
download | jarjar-c3223a2c45534d0c752c3c4a31f5acbb97b5ed58.tar.gz |
Support META-INF and module-info am: 741153e061 am: 9c9e0b3a42 am: 8b3d1ab11c am: 25a5bc5726 am: 67d17ce238 am: 6c53707537android-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Original change: https://android-review.googlesource.com/c/platform/external/jarjar/+/2578874
Change-Id: I5aa1b4219cee288659ac367197b36d075657cf60
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/main/com/tonicsystems/jarjar/Wildcard.java | 4 | ||||
-rw-r--r-- | src/main/com/tonicsystems/jarjar/util/JarTransformer.java | 3 | ||||
-rw-r--r-- | src/test/com/tonicsystems/jarjar/WildcardTest.java | 4 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/main/com/tonicsystems/jarjar/Wildcard.java b/src/main/com/tonicsystems/jarjar/Wildcard.java index c92e0fb..2522e0d 100644 --- a/src/main/com/tonicsystems/jarjar/Wildcard.java +++ b/src/main/com/tonicsystems/jarjar/Wildcard.java @@ -143,6 +143,10 @@ class Wildcard if (expr.endsWith("package-info")) { expr = expr.substring(0, expr.length() - "package-info".length()); } + // Android-changed: also include module-info + if (expr.endsWith("module-info")) { + expr = expr.substring(0, expr.length() - "module-info".length()); + } for (int i = 0, len = expr.length(); i < len; i++) { char c = expr.charAt(i); if (extra.indexOf(c) >= 0) diff --git a/src/main/com/tonicsystems/jarjar/util/JarTransformer.java b/src/main/com/tonicsystems/jarjar/util/JarTransformer.java index 53c7de0..d22f7bd 100644 --- a/src/main/com/tonicsystems/jarjar/util/JarTransformer.java +++ b/src/main/com/tonicsystems/jarjar/util/JarTransformer.java @@ -24,7 +24,8 @@ import org.objectweb.asm.ClassWriter; abstract public class JarTransformer implements JarProcessor { public boolean process(EntryStruct struct) throws IOException { - if (struct.name.endsWith(".class")) { + // Android-changed: exclude META-INF files, so they don't get moved into the root. + if (struct.name.endsWith(".class") && !struct.name.startsWith("META-INF")) { ClassReader reader; try { reader = new ClassReader(struct.data); diff --git a/src/test/com/tonicsystems/jarjar/WildcardTest.java b/src/test/com/tonicsystems/jarjar/WildcardTest.java index 7cdcdf7..f41b2f5 100644 --- a/src/test/com/tonicsystems/jarjar/WildcardTest.java +++ b/src/test/com/tonicsystems/jarjar/WildcardTest.java @@ -30,10 +30,12 @@ extends TestCase wildcard("net/sf/cglib/**", "foo/@1", "net/sf/cglib/!", null); wildcard("net/sf/cglib/*", "foo/@1", "net/sf/cglib/Bar", "foo/Bar"); wildcard("net/sf/cglib/*/*", "foo/@2/@1", "net/sf/cglib/Bar/Baz", "foo/Baz/Bar"); + wildcard("**/package-info", "bar/baz/@1/package-info", "foo/package-info", "bar/baz/foo/package-info"); + wildcard("**/module-info", "bar/baz/@1/module-info", "foo/module-info", "bar/baz/foo/module-info"); } private void wildcard(String pattern, String result, String value, String expect) { - Wildcard wc = new Wildcard(pattern, result); + Wildcard wc = new Wildcard(pattern, result, 0); // System.err.println(wc); assertEquals(expect, wc.replace(value)); } |