XWayland server provides limited capabilities for X11 desktop applications (see X11 Application Support and JDK-8269245). In order to get full support of the desktop features we need to implement a pure wayland client toolkit for java. Wayland architecture in many ways differs from X11, so we cannot reuse XAWT even for basic capabilities. The new toolkit should be implemented from scratch. Here are some major chunks of work:
Event handling
Dispatch native events on EDT, to avoid potential race conditions when the state is updated both from EDT and toolkit thread. See the full proposal here
Graphics devices support
Onscreen/offscreen Wayland surface management
Adopt OGL pipeline for rendering on Wayland surfaces
Implement a new rendering pipeline based on Vulkan (for better performance)
java.awt.Robot
Sending input events
Reading screen data (at least current java application windows)
Client-side decorations for windows
Swing internal frames rendering code can be reused