Skip to content

Commit

Permalink
Merge pull request #53 from patrick-premont/zap-anything
Browse files Browse the repository at this point in the history
Modified Zap so that it removes matched resources
  • Loading branch information
eed3si9n authored Feb 26, 2024
2 parents ad175de + 986d33d commit 38ed500
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
17 changes: 14 additions & 3 deletions jarjar/src/main/java/com/eed3si9n/jarjar/ZapProcessor.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,20 @@ public ZapProcessor(List<Zap> zapList) {

public boolean process(EntryStruct struct) throws IOException {
String name = struct.name;
if (name.endsWith(".class"))
return !zap(name.substring(0, name.length() - 6));
return true;
String matchName = name.endsWith(".class") ?
name.substring(0, name.length() - 6) :
replaceResourceName(name);
return !zap(matchName);
}

private static final String RESOURCE_SUFFIX = "RESOURCE";

private static String replaceResourceName(String name) {
int slash = name.lastIndexOf('/');

String s = (slash < 0) ? RESOURCE_SUFFIX : name.substring(0, slash + 1) + RESOURCE_SUFFIX;
boolean absolute = s.startsWith("/");
return absolute ? s.substring(1) : s;
}

private boolean zap(String desc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ public void testZap() throws IOException {

entryStruct.name = "com/example/Object.class";
assertTrue(zapProcessor.process(entryStruct));

entryStruct.name = "org/file.txt";
assertFalse(zapProcessor.process(entryStruct));

entryStruct.name = "com/file.txt";
assertTrue(zapProcessor.process(entryStruct));
}

@Test
Expand Down

0 comments on commit 38ed500

Please sign in to comment.