Skip to content

Remove dependency to BurningWave #1307

@ptziegler

Description

@ptziegler

In continuation of #1305, we should try to get rid of BurningWave alltogether.

This dependency was initially added as a fix for #45 to circumvent the increasingly stricter rules of newer Java release. Additionally, it is required to access the internal fields of Swing and SWT components during design time.

However, WindowBuilder has evolved quite a lot since then. The dependency to CGLib, which was responsible for the initial problem, has long since removed by ByteBuddy. Furthermore, reflective access has become much more robust via e.g. #1033, #1034 and #1039.

The only instances where this dependency becomes necessary is for projects using the module system and which don't expose their properties. This in short means: Swing.

There are certain properties like JFrame.isRootPaneCheckingEnabled() that are not publicly accessible.

Image

But the Oracle team has made it very clear that our use case is not supported and tools such as BurningWave will inevitably stop working.

For WindowBuilder, this means that we can't break encapsulation and instead have to rely on the user to explicitly open those modules for us. It is therefore necessary to detect such a lack of permissions and report a proper error message.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency file

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions