I found the screen overriding mechanism does not work sometimes.
Through exploring the source code, I found a possible cause is loading for WindowInfo does not consider the dependencies between Jmix modules.
As a workaround ,I extended the WindowConfig class and override the registerScreen method like following:
A Jmix composite project with three sub-projects .
The names of sub-project are xxAddon,xxAddonUi and demo . xxAddonUi depends on xxAddon, demo depends on xxAddonUi-starter and xxAddon-starter. xxAddon and xxAddonUi are Jmix single module addon project, demo is Jmix single module application project.
In xxAddonUi project, I created a screen controller that override UserInAppNotificationBrowseScreen screen in Jmix Notification addon through Studio. Meanwhile I specified that xxAddonUi depends on Jmix Notification addon in Spring Configuration class of xxAddonUi module like following:
I tried to create a simple project for reproducing the issue. But I encountered a new problem when creating a “Override” screen.
See following screenshot.
I wanted to create a screen in xyzui project to override the UserInAppNotificationBrowseScreen screen in Notifications add-on , but cannot see the UserInAppNotificationBrowseScreen screen in the Override screen: list.
I attached my test project. Please take a look.