RFR: 8000975: (process) Merge UNIXProcess.java.bsd & UNIXProcess.java.linux (& .solaris & .aix)
Peter Levart
peter.levart at gmail.com
Tue Apr 1 17:05:17 UTC 2014
On 04/01/2014 05:51 PM, Rob McKenna wrote:
> Mac OSX testing was clean.
>
> -Rob
Thanks again Rob.
Regards, Peter
>
> On 01/04/14 16:43, Peter Levart wrote:
>> On 04/01/2014 03:49 PM, roger riggs wrote:
>>> 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.
>>>
>>> Roger
>>
>> That's true. A trade-off between maintainability and efficiency. The
>> efficiency has two categories here. One is the size of the
>> distributable and the other is run-time efficiency. I've been
>> thinking to improve both efficiencies (the run-time in particular)
>> with a little re-design. Since nearly each OS platform requires a
>> sub-class of UNIXProcess to implement the differences, I can move the
>> implementations of various methods now in Os enum to the UNIXProcess
>> subclasses and get rid of Os enum per-instance subclasses.
>>
>> Let me try this and see what comes out.
>>
>> Regards, Peter
>>
>>>
>>>
>>>
>>> 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