RFR: 8144062: Determine appropriate module for jdk.Version
Paul Sandoz
paul.sandoz at oracle.com
Thu Feb 25 09:14:43 UTC 2016
> On 25 Feb 2016, at 09:06, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>
> On 25/02/2016 05:59, Iris Clark wrote:
>> Hi, Alan, Mandy, and Mark.
>>
>> After exploring a few module options (jdk.Version, jdk.dev [0]),
>> it looks like the best choice is to move jdk.Version to
>> java.lang.Runtime.Version (a nested class of Runtime). It supports
>> the values returned by the java.{vm.}?version and
>> java.{vm.}?specification.version system properties. By making
>> Version an SE API, it may be exported by the java.base module.
>>
>> Please review the following changes to move jdk.Version to
>> jdk.lang.Runtime.Version. Note that beyond the package name and
>> class declaration (to static), the only other changes in Version
>> are related to indentation.
>>
> This looks good. We should probably change the synopsis on the JIRA issue to make it clearer that it is promoting Version to a standard API.
>
Dunno if the following was discussed for the review of internal impl.
I think it would be better to internally maintain an int[] for the version numbers rather than List<Integer>, that is more efficient in terms of space and comparing/equality (you can even use the new array comparison methods, thus the compareVersion becomes a one-liner).
It’s ok to take the hit for returning List<Integer> a simple AbstractList wrapper (also implementing RandomAccess) will suffice [*].
> Once this is in then the multi-release JAR file patch can be updated to make use of this.
>
And since this will now be part of SE it might be possible to revisit (as a follow on issue) the definition and use of the JarFile.Release enum by MR-JARs.
Paul.
[*]
public List<Integer> version() {
class VersionList extends AbstractList<Integer> implements RandomAccess {
@Override
public Integer get(int index) {
return version[index];
}
@Override
public int size() {
return version.length;
}
}
return new VersionList();
}
More information about the core-libs-dev
mailing list