RFR: 8266835: Add a --validate option to the jar tool

Jorn Vernee jvernee at openjdk.java.net
Wed May 19 14:24:19 UTC 2021


This patch adds a `--validate` option to the jar tool which can be used to validate a jar file that might be malformed. For instance, if a jar is a multi-release jar, it is malformed if different versions expose different APIs.

The implementation is straight forward since there already exists validation logic that is run when creating or updating a jar. This patch just exposes that logic directly under a new command line flag.

I've enhanced the existing ApiValidatorTest to also create malformed jars using the zip file APIs (the jar tool does not output malformed jars) and run them through `jar --validate`.

Note that while the jdk's jar tool does not output malformed jars, third-party archiving tools might, or the jar could have been manually edited.

Some prior discussion here: https://mail.openjdk.java.net/pipermail/core-libs-dev/2021-May/077420.html

Testing: running jdk/tools/jar test suite locally, tier 1-3 (in progress), manual testing.

-------------

Commit messages:
 - - Remove spurious test imports
 - Add tests
 - Change validate option wording to not mention multi-release jars
 - Add jar --validate

Changes: https://git.openjdk.java.net/jdk/pull/3971/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3971&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8266835
  Stats: 146 lines in 4 files changed: 114 ins; 4 del; 28 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3971.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3971/head:pull/3971

PR: https://git.openjdk.java.net/jdk/pull/3971


More information about the core-libs-dev mailing list