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.


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