Skip to content

Improve AWT Support #4921

@christianwimmer

Description

@christianwimmer

TL;DR

Improve AWT support to use dynamic linking of the AWT native code libraries. Generalize the dynamic linking approach, which is currently used only on Windows, to all platforms. Drop the current static linking approach used for Linux

Goals

The current support for AWT on Windows uses dynamic linking of the native code libraries: the unmodified shared libraries of the JDK are loaded dynamically at image run time using the regular JNI mechanism. The only "downside" of this approach is that the shared libraries need to be shipped together with the application executable.

On Linux, currently a static linking approach is used: the AWT native code is linked statically into the application. This approach has significant compatibility issues and would require changes to the native code for future JDK versions and to support additional platforms. It is therefore a goal to remove the static linking approach on Linux and switch to the dynamic linking. Once dynamic linking is working on Windows and Linux, adding support for MacOS will be not much additional work.

Non-goals

  • We will remove the current static linking approach used for Linux. This approach can be considered a failed experiment because it is not maintainable and has no significant benefits over the dynamic linking approach.
  • It is not a goal to provide a complete reflection and resource registration of all parts of AWT. Each application still needs to provide its own registrations, which can be collected using the tracing agent.

Metadata

Metadata

Labels

Type

No type

Projects

Status

In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions