RFR: 8000975: (process) Merge UNIXProcess.java.bsd & UNIXProcess.java.linux (& .solaris & .aix)

roger riggs roger.riggs at oracle.com
Tue Apr 1 13:49:29 UTC 2014

Hi Peter,

The design using enum for the os dependencies does not make it possible
to include only the support needed for a particular platform at build time.
Every implementation will be carrying around the support for all the 
other platforms.
A build time binding would be more efficient.


On 4/1/2014 9:16 AM, Peter Levart wrote:
> Hi Alan, Volker,
> Thanks for sharing the info and for testing on AIX. Here's the updated 
> webrev that hopefully includes the correct "dispatch on os.name" 
> logic. I included "Solaris" as an alternative to "SunOS" since I saw 
> this in some documents on Internet. If this is superfluous, I can 
> remove it:
> http://cr.openjdk.java.net/~plevart/jdk9-dev/UNIXProcess/webrev.03/
> I tested this on Linux and Solaris and the java/lang/ProcessBuilder 
> jtreg tests pass. So with Volker's test on AIX, the only OS platform 
> left for testing is Mac OS X. Would someone volunteer?
> Regards, Peter
> On 03/27/2014 11:18 AM, Volker Simonis wrote:
>> Hi Peter,
>> thanks for applying these changes to the AIX files as well.
>> With the additional line:
>>              if (osName.equals("AIX")) { return AIX; }
>> in Os.get() your change compiles cleanly on AIX and runs the
>> java/lang/ProcessBuilder tests without any errors.
>> So from an AIX perspective, thumbs up.
>> Regards,
>> Volker
>> On Wed, Mar 26, 2014 at 5:18 PM, Alan Bateman 
>> <Alan.Bateman at oracle.com> wrote:
>>> On 26/03/2014 15:19, Peter Levart wrote:
>>>> I couldn't find any official document about possible os.name values 
>>>> for
>>>> different supported OSes. Does anyone have a pointer?
>>> I don't know if there is a definite list but I assume we don't need 
>>> to be
>>> concerned with anything beyond the 4 that we have in OpenJDK, which is
>>> "Linux", "SunOS", "AIX" and contains("OS X").
>>> If we get to the point in JDK 9 where src/solaris is renamed to 
>>> src/unix (or
>>> something equivalent) then it could mean that the Os enum can be 
>>> replaced
>>> with an OS specific class in src/linux, src/solaris, ... and this would
>>> avoid the need for an os.name check at runtime.
>>> -Alan.

More information about the core-libs-dev mailing list