On 23/01/2019 14:27, Jaikiran Pai wrote:
Hi,

The Multi-Release JarFile support JEP[1] notes that the jar file is
expected to contain a main attribute:

Multi-Release: true

The JarFile javadoc[1] on the other hand makes no mention of the value
for such an attribute and just mentions that the Multi-Release main
attribute needs to be present:

"A multi-release jar file is a jar file that contains a manifest with a
main attribute named "Multi-Release",..."

Which one of these 2 docs is expected to be the formal specification?
I'm guessing it's the javadoc, in which case, is it intentional that the
value for this attribute isn't mentioned or is it just a miss? My quick
tests show that the implementation of this feature does indeed expect
the value to be a "true" for it to consider the versioned entries in a
multi-release jar.

The JAR file spec [1] is the specification. There's a lengthy section defining MR JARs. The API docs are also specification, for the APIs that provide access to JAR files, including MR JARs. So yes, you need the "Multi-Release" attribute in the main section of the JAR file manifest and it needs to have a value of "true" to enable. There is also a JDK-specific property, documented in the JarFile docs, to override the configuration where needed.

-Alan

[1] https://docs.oracle.com/en/java/javase/11/docs/specs/jar/jar.html

Reply via email to