Hi Christoph, Thank you for looking into this.
Overall, I think this is OK. Not sure there is currently any downside to removing the JAR FS right now outside of keeping the multi-release code separate. I would suggesting moving the code added to the constructor for checking the releaseVersion/multi-release properties to a method and grouping it with the other methods added for supporting MR jars around line 1396. (keeps it easier to follow and maintain) Could you also add a comment above the isMultiReleaseJar method to for clarity going forward (I know there was not one there before) I might change the name of the lookup field in the method makeParentDirs with the addition of the Function lookup on line 126. The methods in JarFileSystemProvider getPath and uriToPath are slightly different in ZipFileSystemProvider. That being said, I do not see anything obvious of concern but wanted to point it out. The test changes look fine Again, thanks for your efforts to improve Zip FS Best Lance > On Nov 14, 2019, at 10:23 AM, Langer, Christoph <christoph.lan...@sap.com> > wrote: > > Hi, > > after exchanging some direct mails with Lance, I came to the conclusion that > the current behavior to ignore file system property “multi-release” when > “releaseVersion” is explicitly set to null is the right thing to do. So I > updated the webrev to reinstate this functionality and added explicit > comments as well as augmenting MultiReleaseJarTest.java a little bit to test > that “multi-release” is ignored in the right places. > > This is the new webrev: > http://cr.openjdk.java.net/~clanger/webrevs/8234089.1/ > <http://cr.openjdk.java.net/~clanger/webrevs/8234089.1/> > > Best regards > Christoph > > > From: Langer, Christoph > Sent: Mittwoch, 13. November 2019 17:42 > To: core-libs-dev@openjdk.java.net <mailto:core-libs-dev@openjdk.java.net>; > nio-dev <nio-...@openjdk.java.net <mailto:nio-...@openjdk.java.net>> > Subject: RFR: 8234089: (zipfs) Remove classes JarFileSystemProvider and > JarFileSystem > > Hi, > > can I please get reviews for this cleanup change in zipfs. > > Bug: https://bugs.openjdk.java.net/browse/JDK-8234089 > <https://bugs.openjdk.java.net/browse/JDK-8234089> > Webrev: http://cr.openjdk.java.net/~clanger/webrevs/8234089.0/ > <http://cr.openjdk.java.net/~clanger/webrevs/8234089.0/> > > I figured that JarFileSystemProvider is completely obsolete (please correct > me if I’m wrong) and the reasons for having a class JarFileSystem that > extends ZipFileSystems are very little in my opinion. I think maintainability > is better when the few implementation details of multi release jars live in > ZipFileSystem as well. It saves some code. The only possible drawback is that > ZipFileSystem:: getInode would have an additional call to a lookup function, > that usually is an identity transformation. I would hope however, that > runtime impact is negligible. > > I also fix a small bug when property “releaseVersion” is set to null in the > env map and multi-release contains a value. In the current implementation it > would not consider the “multi-release” value and treat the mr jar as the > current runtime version. I had to do a small fix in MultiReleaseJarTest.java > to make sure the properties list is cleared in every case. > > The jdk/nio/zipfs tests run well after my change. > > Thanks > Christoph <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037 Oracle Java Engineering 1 Network Drive Burlington, MA 01803 lance.ander...@oracle.com <mailto:lance.ander...@oracle.com>