summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Baker-Malone <jbakermalone@google.com>2023-05-04 22:11:43 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-05-04 22:11:43 +0000
commit25a5bc57264b7bdb42665b70892786f99a23834b (patch)
tree5d1f4e8fefa0df82f86b0960eadd3580f4e35f64
parentd72f92961db54c1639acc8fd593155b0490f9f39 (diff)
parent8b3d1ab11c0409395d928d64f9b306f836d42ae0 (diff)
downloadjarjar-25a5bc57264b7bdb42665b70892786f99a23834b.tar.gz
Support META-INF and module-info am: 741153e061 am: 9c9e0b3a42 am: 8b3d1ab11c
Original change: https://android-review.googlesource.com/c/platform/external/jarjar/+/2578874 Change-Id: I7c00227aedf98354c49ab400673f18579848554d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/main/com/tonicsystems/jarjar/Wildcard.java4
-rw-r--r--src/main/com/tonicsystems/jarjar/util/JarTransformer.java3
-rw-r--r--src/test/com/tonicsystems/jarjar/WildcardTest.java4
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));
}