On Mon, 29 Mar 2021 14:04:10 GMT, Jaikiran Pai <j...@openjdk.org> wrote:
>> Can I please get a review for this patch which proposes to implement the >> enhancement request noted in >> https://bugs.openjdk.java.net/browse/JDK-8173970? >> >> The commit in this PR introduces the `-o` and `--output-dir` option to the >> `jar` command. The option takes a path to a destination directory as a value >> and extracts the contents of the jar into that directory. This is an >> optional option and the changes in the commit continue to maintain backward >> compatibility where the jar is extracted into current directory, if no `-o` >> or `--output-dir` option has been specified. >> >> As far as I know, there hasn't been any discussion on what the name of this >> new option should be. I was initially thinking of using `-d` but that is >> currently used by the `jar` command for a different purpose. So I decided to >> use `-o` and `--output-dir`. This is of course open for change depending on >> any suggestions in this PR. >> >> The commit in this PR also updates the `jar.properties` file which contains >> the English version of the jar command's `--help` output. However, no >> changes have been done to the internationalization files corresponding to >> this one (for example: `jar_de.properties`), because I don't know what >> process needs to be followed to have those files updated (if at all they >> need to be updated). >> >> The commit also includes a jtreg testcase which verifies the usage of this >> new option. > > Jaikiran Pai has updated the pull request incrementally with two additional > commits since the last revision: > > - Alan's review feedback for -C help text > - Keep -xfP backward compatible but don't allow -C/--dir with -xfP Hi Jaikiran Overall this looks good. I have a few comments below and will look at the CSR shortly. src/jdk.jartool/share/classes/sun/tools/jar/Main.java line 1427: > 1425: return rc; // leading '/' or 'dot-dot' only path > 1426: } > 1427: File f = new File(xdestDir, name.replace('/', > File.separatorChar)); Could you please add a comment regarding xdestDir and also correct the typo on line 1418 'requres' -> 'requires' src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties line 62: > 60: Could not create a temporary file > 61: error.extract.multiple.dest.dir=\ > 62: You may not specify more than one directory for extracting the jar Perhaps something similar to: You may not specify the '-C' or '--dir' option more than once with the '-x' option src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties line 64: > 62: You may not specify more than one directory for extracting the jar > 63: error.extract.pflag.not.allowed=\ > 64: -P option cannot be used when extracting a jar to a specific > location Perhaps something similar to You may not specify '-Px' with the '-C' or '--dir' options src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties line 167: > 165: (in = {0}) (out= {1}) > 166: out.extract.dir=\ > 167: extracting to {0} Perhaps 'Extracting to directory: {0}' src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties line 249: > 247: \ -C DIR Change to the specified directory and > include the\n\ > 248: \ following file. When used in extract mode, > extracts\n\ > 249: \ the jar to the specified directory Should this be updated on line 187 as well in the compatibility mode section? test/jdk/tools/jar/JarExtractTest.java line 152: > 150: return abs; > 151: } > 152: Please add a comment to each test giving a high level overview of what it does as it will help future maintainers test/jdk/tools/jar/JarExtractTest.java line 307: > 305: // make sure only the specific files were extracted > 306: final Stream<Path> paths = Files.walk(Path.of(tmpDir)); > 307: Assert.assertEquals(paths.count(), 6, "Unexpected number of > files/dirs in " + tmpDir); Should '6' be in a local variable to make it clearer or at a minimum a comment test/jdk/tools/jar/JarExtractTest.java line 367: > 365: } > 366: > 367: private static Path createJarWithPFlagSemantics() throws IOException > { Perhaps add a comment as to what the method does ------------- PR: https://git.openjdk.java.net/jdk/pull/2752