diff options
4 files changed, 15 insertions, 3 deletions
diff --git a/src/main/com/tonicsystems/jarjar/ResourceProcessor.java b/src/main/com/tonicsystems/jarjar/ResourceProcessor.java index 40eb520..76f9189 100644 --- a/src/main/com/tonicsystems/jarjar/ResourceProcessor.java +++ b/src/main/com/tonicsystems/jarjar/ResourceProcessor.java @@ -28,7 +28,7 @@ class ResourceProcessor implements JarProcessor { } public boolean process(EntryStruct struct) throws IOException { - if (!struct.name.endsWith(".class")) { + if (!struct.isClass()) { struct.name = pr.mapPath(struct.name); } return true; diff --git a/src/main/com/tonicsystems/jarjar/ZapProcessor.java b/src/main/com/tonicsystems/jarjar/ZapProcessor.java index 76f8298..7431ec3 100644 --- a/src/main/com/tonicsystems/jarjar/ZapProcessor.java +++ b/src/main/com/tonicsystems/jarjar/ZapProcessor.java @@ -29,7 +29,7 @@ class ZapProcessor implements JarProcessor { public boolean process(EntryStruct struct) throws IOException { String name = struct.name; - if (name.endsWith(".class")) { + if (struct.isClass()) { return !zap(name.substring(0, name.length() - 6)); } return true; diff --git a/src/main/com/tonicsystems/jarjar/util/EntryStruct.java b/src/main/com/tonicsystems/jarjar/util/EntryStruct.java index 2ebf512..bf72ab5 100644 --- a/src/main/com/tonicsystems/jarjar/util/EntryStruct.java +++ b/src/main/com/tonicsystems/jarjar/util/EntryStruct.java @@ -20,4 +20,16 @@ public class EntryStruct { public byte[] data; public String name; public long time; + + /** Returns true if the entry is a class file. */ + public boolean isClass() { + if (!name.endsWith(".class")) { + return false; + } + if (name.startsWith("META-INF/version")) { + // TODO(b/69678527): handle multi-release jar files + return false; + } + return true; + } } diff --git a/src/main/com/tonicsystems/jarjar/util/JarTransformer.java b/src/main/com/tonicsystems/jarjar/util/JarTransformer.java index a88bcf7..2b07a88 100644 --- a/src/main/com/tonicsystems/jarjar/util/JarTransformer.java +++ b/src/main/com/tonicsystems/jarjar/util/JarTransformer.java @@ -23,7 +23,7 @@ import org.objectweb.asm.ClassWriter; public abstract class JarTransformer implements JarProcessor { public boolean process(EntryStruct struct) throws IOException { - if (struct.name.endsWith(".class")) { + if (struct.isClass()) { ClassReader reader; try { reader = new ClassReader(struct.data); |