RFR 8150681 Update JAR specification for multi-release jar files

Alan Bateman Alan.Bateman at oracle.com
Thu May 4 15:41:28 UTC 2017

On 03/05/2017 22:44, Paul Sandoz wrote:

> Hi,
> Please review an update to the JAR “specification” (in the loose sense of the term):
> - first, it has been moved from a closed repository into the idk repository (same shared location as the recently introduced serialisation specification) and converted to markdown:
>    http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8150681-jar-spec-markdown/webrev/ <http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8150681-jar-spec-markdown/webrev/>
> (This also includes a new attribute Launcher-Agent-Class, a Jigsaw related change to better support Java agents.)
> For comparison, the HTML version online is here:
>    http://download.java.net/java/jdk9/docs/technotes/guides/jar/jar.html <http://download.java.net/java/jdk9/docs/technotes/guides/jar/jar.html>
> - second i have added sections on multi-release JAR files:
>    http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8150681-jar-spec-markdown-with-mr-jar/webrev/ <http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8150681-jar-spec-markdown-with-mr-jar/webrev/>
> this is based against the first patch so the changes can be easily viewed.
> I expect some further editing of this specification to add further links to module related stuff and tidy up existing links to tools etc.
I read through the changes.

Modular JAR files section:

"directly under the root"  - somewhat subjective but I think "in the 
top-level directory" as we had in the original text is clearer here.

"in accordance with it's module descriptor"  looks unusual and I think 
would be better to keep the original sentence.

L70 - I assume "explicitly modular or automatic" should be removed as 
this is JAR files on the class path.

Modular multi-release JAR files section:

As with the Modular JAR file section, I think "in the top-level 
directory" would be clearer.

L155-158 - "A non-exported public or protected class  ...". It might be 
clearer to say a public or protected class in a non-exported package.

L171 - I think there is a typo here and it means non-transitive requires.

Typo at L219: "This directory containers underneath"

Otherwise looks good to me.


More information about the core-libs-dev mailing list