RFR: 8231093: Document the ZIP FS properties noCompression and releaseVersion

Lance Andersen lance.andersen at oracle.com
Fri Sep 27 11:29:56 UTC 2019


Hi Christoph,

> On Sep 27, 2019, at 6:21 AM, Langer, Christoph <christoph.langer at sap.com> wrote:
> 
> Hi Lance,
> 
> thanks for updating the webrev. It looks good now.

Thank you.  Once the CSR is blessed, I will push.
> 
> Regarding refactoring the JarFileSystem/JarFileSystemProvider classes, I plan to have a look at after this change got pushed.

OK, I am hoping Alan or Sherman(if he is reading this alias :-) ) might have some of the history.

Thank you again!

Best
Lance
> 
> Best regards
> Christoph
> 
>> -----Original Message-----
>> From: Lance Andersen <lance.andersen at oracle.com>
>> Sent: Mittwoch, 25. September 2019 20:24
>> To: Langer, Christoph <christoph.langer at sap.com>
>> Cc: nio-dev <nio-dev at openjdk.java.net>
>> Subject: Re: RFR: 8231093: Document the ZIP FS properties noCompression
>> and releaseVersion
>> 
>> Hi Christoph
>> 
>> Thank you for the feedback, more below:
>> 
>> On Sep 25, 2019, at 6:58 AM, Langer, Christoph
>> <mailto:christoph.langer at sap.com> wrote:
>> 
>> Hi Lance,
>> 
>> first of all, thanks for doing these updates to zipfs. It gets better and
>> better ��
>> :-)
>> 
>> 
>> I’ve been looking at the change now, too. Here are my findings:
>> 
>> JarFileSystem.java:
>> Line 96: remove
>> done
>> 
>> Line 98: space should be between if and (, not after (.
>> done
>> 
>> Line 103: there are quite some spaces (too much) between return and o
>> 
>> done
>> 
>> Generally I’m wondering whether the classes JarFileSystem and
>> JarFileSystemProvider couldn’t be removed at all and we could just add this
>> multi-release implementation part into the ZipFileSystem class.
>> 
>> Well that is beyond the scope of this change :-)
>> 
>> But that could be a subsequent change.
>> 
>> I was not involved, but it might have been discussed as part
>> of http://hg.openjdk.java.net/jdk9/dev/jdk/rev/5cebf921be7a
>> 
>> 
>> But yes, any changes should be handled separately
>> 
>> 
>> ZipFileSystem.java:
>> Line 92: private static final String COMPRESSION_METHOD =
>> "compressionMethod";
>> I’d prefer if we could start the property definition constants with PROP_, so,
>> could you use PROP_COMPRESSION_METHOD? And probably also the
>> constants in line 84-87 should be aligned to PROP_POSIX,
>> PROP_DEFAULT_OWNER … (I was using OPT for “Option” when I created
>> them but probably the word “property” makes more sense here).
>> Ok,  I changed them to PROPERTY_ vs PROP_  including the POSIX properties
>> 
>> Iine 94: public static final String DEFLATED_COMPRESSION_METHOD -> this
>> should probably be private. I’d also rather use
>> COMPRESSION_METHOD_DEFLATED
>> line 96: public static final String STORED_COMPRESSION_METHOD -> same:
>> should be private and COMPRESSION_METHOD_STORED
>> Changed the names and I intended to make them private originally but
>> missed that when I refactored via intellij
>> 
>> line 173: insert a space between use and (STORED or DEFLATED)
>> done
>> 
>> line 177: Should be compatibility rather than compatability
>> done
>> 
>> method getDefaultCompressionMethod (line 181 ff)
>> 
>> I’d rather code it like:
>> If (env.containsKey(COMPRESSION_METHOD)) {
>>>> } else {
>>     return isTrue(env, "noCompression") ? METHOD_STORED :
>> METHOD_DEFLATED;
>> }
>> 
>> I left it as it was as I think this comes to style choice
>> 
>> 
>> Independent of that in lines 184, 186 and 187 you could insert a space after
>> the if. That would match more with the style of the rest of the file. Also line
>> 188, I’d prefer a space between switch and (
>> done
>> 
>> 
>> Line 202: String.format is missing the argument COMPRESSION_METHOD.
>> done
>> 
>> 
>> ZipFileSystemProvider.java:
>> In line 57 and 60, I’d declare the constants rather package private than
>> protected.
>> Line 59: compatibility
>> done
>> 
>> Line 126/127: You can just do “return getZipFileSystem(path, env);”
>> done
>> 
>> 
>> module-info.java:
>> line 241: start with a “be” -> will be considered…
>> done
>> 
>> 
>> MultiReleaseJarTest.java:
>> Line 132, 133: Add a space after the ,
>> done
>> 
>> 
>> CompressionModeTest.java:
>> You could remove the empty lines 153 and 170.
>> done
>> 
>> The revised webrev can be found
>> at  http://cr.openjdk.java.net/~lancea/8231093/webrev.03/index.html
>> 
>> Mach5 jdk tiers 1-3 are still clean
>> 
>> Thank you again.
>> 
>> Best
>> Lance
>> 
>> 
>> Thanks & Best regards
>> Christoph
>> 
>> 
>> From: nio-dev <mailto:nio-dev-bounces at openjdk.java.net> On Behalf
>> Of Lance Andersen
>> Sent: Dienstag, 24. September 2019 01:42
>> To: Alan Bateman <mailto:Alan.Bateman at oracle.com>
>> Cc: nio-dev <mailto:nio-dev at openjdk.java.net>
>> Subject: Re: RFR: 8231093: Document the ZIP FS properties noCompression
>> and releaseVersion
>> 
>> Please
>> see  http://cr.openjdk.java.net/~lancea/8231093/webrev.02/index.html
>> 
>> As part of the latest update, I removed the documentation on specifying  a
>> Version Object for the “runtimeVersion” property.
>> 
>> I did however leave the code in place for backward compatibility.   I believe
>> the rest of your input has been addressed.
>> 
>> I also updated the CSR.
>> 
>> Mach5 tiers1-3 run clean
>> 
>> Best
>> Lance
>> On Sep 23, 2019, at 4:32 PM, Lance Andersen
>> <mailto:lance.andersen at oracle.com> wrote:
>> 
>> Thank you for the feedback Alan.
>> 
>> More below
>> 
>> On Sep 23, 2019, at 2:32 PM, Alan Bateman
>> <mailto:Alan.Bateman at oracle.com> wrote:
>> 
>> On 22/09/2019 23:43, Lance Andersen wrote:
>> 
>> 
>> I updated the patch and the CSR.
>> 
>> The updated webrev
>> is: http://cr.openjdk.java.net/~lancea/8231093/webrev.01/index.html
>> I went through the spec updates in module-info.java.
>> 
>> "when adding entries ...". Is that also true when someone re-writes a file?
>> Yes it does.  I can change “adding” to “writing"
>> 
>> 
>> 
>> Do we need quotes around "STORED" and "DEFLATED"  value to make it
>> clearer that they are strings?
>> Sure I can add the quotes
>> 
>> 
>> 
>> "an IllegalArgumentException will be thrown". This could be expanded to say
>> that will be thrown when creating the file system.
>> I can include the additional wording
>> 
>> 
>> 
>> For releaseVersion there are 3 list items that start "If the value ..." and one
>> that starts with "If the Object". We should keep the wording consistent. Also
>> it feels like it accepts too many possible value types and maybe some of
>> these should be dropped.
>> 
>> Please see below WRT dropping Version
>> 
>> 
>> 
>> Could we link "multi-release JAR" to the "Multi-release JAR files" section of
>> the JAR file spec. I
>> thinkmailto:%7b at docRoot%7d/../specs/jar/jar.html should work.
>> Sure I can add that…
>> 
>> 
>> 
>> When the value of releaseVersion is a String or Integer then it's the feature
>> version.  In MR JARs the version is the major version of the Java platform
>> release so "11.0.1" shouldn't be in the example.
>> I can drop  11.0.1 from the example.  Runtime.Version.parse() will accept
>> “11.0.1” and return “11” which is the only reason I included the example .  I
>> can remove the “11.0.1” from the example.
>> 
>> 
>> 
>> The paragraph for a value of "runtime" or Runtime.Version is a bit difficult to
>> read. I think you want "runtime" to use Runtime.version().feature(). If a
>> Runtime.Version object is provided then it's feature() method will be
>> invoked. Maybe it would be better to split these out or maybe allowing a
>> Runtime.Version object should be dropped to reduce the number of
>> possible value types.
>> 
>> I am more than happy to drop the Runtime.Version object.  However as you
>> are probably aware it was there previously and while it is probably highly
>> unlikely that anyone is passing a Version object, if we drop it from the
>> new”runtimeVersion” property, I assume we drop it from the “multi-
>> release” property as well?  I can update the CSR to indicate we are dropping
>> Version.
>> 
>> Best
>> Lance
>> 
>> 
>> 
>> -Alan
>> 
>> 
>> 
>> http://oracle.com/us/design/oracle-email-sig-198324.gif
>> http://oracle.com/us/design/oracle-email-sig-198324.gifLance Andersen|
>> Principal Member of Technical Staff | +1.781.442.2037
>> Oracle Java Engineering
>> 1 Network Drive
>> Burlington, MA 01803
>> mailto:Lance.Andersen at oracle.com
>> 
>> 
>> 
>> 
>> 
>> 
>> http://oracle.com/us/design/oracle-email-sig-198324.gif
>> http://oracle.com/us/design/oracle-email-sig-198324.gifLance Andersen|
>> Principal Member of Technical Staff | +1.781.442.2037
>> Oracle Java Engineering
>> 1 Network Drive
>> Burlington, MA 01803
>> mailto:Lance.Andersen at oracle.com
>> 
>> 
>> 
>> 
>> 
>> 
>> http://oracle.com/us/design/oracle-email-sig-198324.gif
>> http://oracle.com/us/design/oracle-email-sig-198324.gifLance Andersen|
>> Principal Member of Technical Staff | +1.781.442.2037
>> Oracle Java Engineering
>> 1 Network Drive
>> Burlington, MA 01803
>> mailto:Lance.Andersen at oracle.com
>> 
>> 
>> 
> 

 <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.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/nio-dev/attachments/20190927/99227949/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: oracle_sig_logo.gif
Type: image/gif
Size: 658 bytes
Desc: not available
URL: <https://mail.openjdk.java.net/pipermail/nio-dev/attachments/20190927/99227949/oracle_sig_logo-0001.gif>


More information about the nio-dev mailing list