RFR: 8072379: Implement jdk.Version and jdk.OracleVersion

Iris Clark iris.clark at oracle.com
Fri Dec 18 21:55:55 UTC 2015


Hi, Joe.

It is not the intention that all JDK distributions must provide their own specializations of jdk.Version.  However, downstream users may wish to provide additional semantics to the version string via encapsulation rather than inheritance.  In order to facilitate this, the following bug has been filed to consider that case:

    8145793:  Provide vendor-specific interpretation of a JDK version string
    https://bugs.openjdk.java.net/browse/JDK-8145793

Thanks,
iris

-----Original Message-----
From: joe darcy 
Sent: Wednesday, November 25, 2015 3:58 PM
To: Mandy Chung; Iris Clark
Cc: core-libs-dev at openjdk.java.net; verona-dev at openjdk.java.net
Subject: Re: RFR: 8072379: Implement jdk.Version and jdk.OracleVersion

PS If the concepts the two classes Version and OracleVersion are trying to capture is a "Vendor-Version" then perhaps that can be surfaced more directly in the API. That is, if the basic notion is to interpret a version string in a way appropriate to and specialized for a given vendor of the JDK (a la the java.vendor system property), then perhaps a type like

// API sketch
public final class VendorVersion {
     public VendorVersion(String vendor, Version version, Comparator<Version> versionComp>) { ...}

     @Override
     public boolean equals(VendorVersion vv) {
         // Usual instance of checks
         return Objects.equals(vendor, vv.vendor()) && versionComp.version(), vv.version());
     }

     int compareVersion(VendorVersion vv) {
         if (!vendor.equals(vv.vendor()))
             // throw an exception
         return versionComp(version, vv.version);
     }

     // ...
}

might serve the purposes at hand.

HTH,

-Joe



More information about the core-libs-dev mailing list