FW: suggestions to improve AWT (mostly Linux related)

deepak.n.damodaran at oracle.com deepak.n.damodaran at oracle.com
Mon Jan 18 09:39:01 UTC 2021


Adding OpenJDK quality-discuss group.

Regards
Deepak

On 15/01/21 5:23 pm, deepak.n.damodaran at oracle.com wrote:
>
> Hi Sjoerd Brauer,
>
> Could you please post this in AWT dev group - 
> https://mail.openjdk.java.net/pipermail/awt-dev/ 
> <https://mail.openjdk.java.net/pipermail/awt-dev/> ?
>
> Regards
> Deepak
>
> On 13/01/21 2:26 pm, Sjoerd Brauer wrote:
>>
>> *From:*Sjoerd Brauer
>> *Sent:* woensdag 13 januari 2021 09:54
>> *To:* 'quality-discuss at openjdk.java.net' 
>> <quality-discuss at openjdk.java.net>
>> *Subject:* suggestions to improve AWT (mostly Linux related)
>>
>> Dear all,
>>
>> I’ve been working with a Raspbian CLI environment for a while and 
>> notice some unexpected behavior from AWT.Robot.
>>
>> Java registers the Raspbian CLI as a headless environment even though 
>> it can be accessed directly through a keyboard and mouse (I did as well).
>>
>> When fooling the java environment by setting the headless property to 
>> false it throws X11 errors because it relies on an X server to do the 
>> IO stuff.
>>
>> This is the part where I believe AWT can be improved.
>>
>> Yes I understand AWT exists for creating a GUI and CLI is not 
>> considered a GUI.
>>
>> Yes I understand and agree that because using a CLI some AWT related 
>> stuff should not work.
>>
>> Even though this is the case there already exists some exceptions of 
>> using AWT in a headless environment as described by Oracle:
>>
>> https://www.oracle.com/technical-resources/articles/javase/headless.html 
>> <https://www.oracle.com/technical-resources/articles/javase/headless.html> 
>> (I’m assuming OpenJDK shares this behavior but I didn’t test this).
>>
>> I suggest the following improvements to the AWT.
>>
>>   * Don’t make IO simulation classes like AWT.Robot rely on the
>>     X-Server but make it work directly on the OS IO system.
>>       o https://pypi.org/project/keyboard/
>>         <https://pypi.org/project/keyboard/> is a great example on
>>         how you could do this (albeit written in python).
>>   * Separate the headless exception into headless and a new
>>     CLIEnvironment exception.
>>
>> Because the AWT is part of the Java Foundation Classes I’m writing 
>> this to you.
>>
>> Hopefully you find my feedback useful.
>>
>> Kind regards,
>>
>> Sjoerd Brauer
>>
>> Legal Disclaimer :
>> The information contained in this message may be privileged and 
>> confidential.
>> It is intended to be read only by the individual or entity to whom it 
>> is addressed
>> or by their designee. If the reader of this message is not the 
>> intended recipient,
>> you are on notice that any distribution of this message, in any form,
>> is strictly prohibited. If you have received this message in error,
>> please immediately notify the sender and delete or destroy any copy 
>> of this message!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/quality-discuss/attachments/20210118/16dbaec1/attachment.htm>


More information about the quality-discuss mailing list