WaveMaker 11.9.0 - Release date: 21 October 2024
WaveMaker release 11.9.0 is here with major upgrades that includes, migration to Java 17, Javax to Jakarta namespace, Servlet, Spring & 3rd Party Dependencies Upgrade, Zoom level, and option to switch Java versions. You can also find significant enhancements in FileUpload widget. This release also addresses many bugs in both Web and React Native to make the development smoother and better.
Upgrades
Upgrade to Java 17 or Java 21
With the deprecation of Java 11 Long Term Support (LTS), introducing support for compilation on Java 17 or Java 21 based on requirement. Previously with 11.7.4, applications could run on either Java 17 or Java 21 but could be compiled only on Java 11. This upgrade would allow users to compile the applications on 17 or 21. Refer to Java Upgrade: 17 or 21.
Javax to Jakarta Namespace
The transition from the Javax to Jakarta namespace is a major change in the Java ecosystem, affecting not only Java EE servers but also libraries like Spring and Hibernate. This shift requires all libraries in the Javax namespace to be renamed to Jakarta, requiring applications and dependencies to update accordingly.
Currently, WaveMaker apps rely on Servlet 4, which uses the Javax namespace. Starting with WaveMaker's 11.9 release, these apps will be upgraded to Servlet 6 (Jakarta EE), making the switch from Javax to Jakarta. This change requires both applications and their dependencies to migrate. To understand more, see From javax to jakarta namespace.
Servlet, Spring & 3rd Party Dependencies Upgrade
Along with the Java Servlet upgrade from 4.x to 6.x, we are upgrading our Spring framework from 5.x to 6.1.13 as Spring 5 has reached its end of life. With latest updates, Spring 6 is redesigned to support Jakarta EE.
Additionally the third party libraries dependent on Javax might break and may need upgrade. To know more details about this upgrade, see Upgrading to Spring 6.
Database Designer Upgrade
While importing a database, user can view the database table details like Primary, Foreign, and Unique identifier key information along with its connections with other database tables, in the Design tab. With this release, user can find some major enhancements listed below in the Design section.
- Now the user can select the database table to view the details instead of displaying the complete database structure.
- User can click the Connector icon to view all the incoming and outgoing connection details with other database tables.
The database tables in the Design tab are available in read only mode.
The number of Primary, Foreign, Unique identifier keys, and columns are displayed on top of each table.
These enhancements would make database search easy and clear with only the necessary information displayed on the screen.
Zoom Level Setting
Currently, Users can choose between two layouts of the canvas to view any application, Fit to screen and Laptop with MDPI Screen.
Fit to Screen: This option sets the entire application screen fits within the available display area without requiring any scrolling or resizing. It automatically adjusts the content to match the screen's resolution or aspect ratio for optimal visibility.
Laptop with MDPI Screen: This layout displays the application screen at MDPI resolution, which may be higher than user's current screen resolution, providing a more realistic view of the actual app resolution.
With the current feature, it was observed that the screen content were displayed diferently in canvas and preview modes, compromising the What You See Is What You Get (WYSIWYG) principle.
Canvas:
Preview:
In this release, Zoom level is introduced that replaces these layout options. User can now set the Zoom level and maintain the same visibility in canvas and preview modes. By default the Zoom level is set to 85%. The maximum zoom-in and zoom-out levels are 120% and 50% respectively. To know more, see Zoom Level Setting.
Canvas:
Preview:
Switching Java Version in Applications and Prefabs
Introduced a new field named Java Version in the General setting screen. User can now switch the Java versions between 17 and 21 based on the requirement. This allows to choose the Java version for the development.
With the transition from the javax to jakarta namespace and major library upgrades, including Servlet and Spring, we encountered several compatibility challenges during the upgrade process. While our application migrator automatically updates existing applications to the latest stack, some backward compatibility issues may arise depending on the specific functionality of your application.
To support this transition, we are here with a detailed blog post, Seamless Migration: Upgrading to Java 17 and Spring 6, explaining the migration process and highlighting any manual changes that might be required after the release. We encourage you to review the post for a smoother upgrade experience.
Enhancements
FileUpload Widget Enhancements
Introduced two new events in the FileUpload widget, On Delete and On Before Delete. These events provide greater control over the file deletion process, allowing for customization and confirmation prompts.
- On Before Delete: It triggers upon clicking the delete icon. This event allows to provide custom validation or checks before confirming.
- On Delete: It triggers when the user confirms the cancelation.
WebSocket Integration
With this release, WebSocket integration has been re-introduced with enhanced UI. To understand how to import and integrate, see Working with WebSockets.
Bug Fixes
Row Selection in Data Table
In a Data Table, when the Multiselect or Radio Column property is enabled in the Advanced Settings dialog, clicking anywhere on a row selects the row and its associated checkbox. To provide more control, a new property is added in the Advanced Settings dialog called Row Selectable.
With this property enabled, rows and their associated checkboxes can only be selected when the checkbox itself is clicked. Additionally, the checkbox can also be selected when the Edit option under the actions column is clicked.
Nested Popover Issue
In case of Popover widget used inside another Popover widget, the outer Popover was getting automatically closed upon clicking anywhere within the inner Popover. This was observed when Auto Close property was selected as Outside Click. Fixed the issue where the outer Popover would close only upon clicking anywhere outside.
Retrieving Destination Page
Users can now retrieve the destination page value in the currently used page and directly navigate to the desired page. This is achieved by providing the destination page value as parameter to the OnBeforePageLeave event in the current page.
Binding option in Search and Caption Widgets
Previously, users were unable to customize the values in Datafield and Caption field in Search and Caption widgets respectively. With this fix, users can set the Locale message by binding the value to the fields.
Fixes in Chips and Data Table Widget
Added customisation in the Chips widget by allowing the users to add the message in the Data Complete Message field. Also added toaster messages in below listed dialogs in the Data Table widget.
- Delete Confirm Dialog
- Edit Confirm Dialog
- Add/Update Confirm Dialog
React Native Fixes
Issue with Required Form Field
In Form widget, the required form field was not highlighted with red border and no validation messages were displayed upon submitting the required fields as empty.
Selected item in List is not Displayed
Earlier, users were unable to select any item in the list upon clicking the button. This button was used within the list. This issue was fixed and now the list item is selected upon clicking the button associated to that item.
Auto Login Issue When User Logs Out
An issue was addressed where the users were getting redirected to the Main Page instead of the Login page when users tried to log out. This issue was observed when any identity provider was used to login to the application.
Technology Stack
UI Frameworks
Description | JS Library | Version |
---|---|---|
JS Binding | jquery | 3.7.1 |
jquery-ui* | 1.13.3 | |
MVC Framework | Angular | 17.3.11 |
ngx-bootstrap | 9.0.0 | |
Styles | bootstrap | 3.3.7 |
Charting | d3 | 7.8.5 |
nvd3 | 1.8.11 | |
Built-in functions | lodash-es | 4.17.21 |
Device support, gestures | hammerjs | 2.0.8 |
Optimized jQuery-UI library excluding unwanted components like accordion, datepicker, dialog, progressbar, spinner, tabs, and all jQuery-UI Effects.
Backend Frameworks
Description | Java Library | Version | |
---|---|---|---|
Spring Framework | 5.3.39 -> 6.1.13 | ||
Security framework | Spring Security | 5.8.14 -> 6.3.3 | |
Java JSON utilities | Gson | 2.11.0 | |
DB Persistence library | Hibernate(Jakarta) | 5.6.15.Final | |
Sample database | HSQL | 2.7.3 | |
JSON library | Jackson | 2.17.2 -> 2.18.0 | |
Logging framework | SLF4j | 1.7.36 -> 2.0.16 | |
Logging Implementation | Log4j2 | 2.18.0 -> 2.24.1 | |
Http client library | HttpComponents - httpclient | 4.5.14 -> 5.4 | |
Servlet Framework | 4.0.4 -> 6.0.0 | ||
Database Connection Pooling | HikariCP | 6.0.0 | |
Commons Lang3 | 3.17.0 | ||
Guava | 33.3.1-jre | ||
Postgresql Driver | 42.7.4 | ||
Spring Data | 2021.2.18 -> 2024.0.4 | ||
Hibernate Validator | 6.2.5.Final -> 8.0.1.Final |
Runtime Environment
Description | Version | |
---|---|---|
JDK | 11 -> 17 | |
WebSphere Liberty | 19.0.0.1+ -> 23.0.0.9+ | |
JBoss Wildfly | 15+ -> 27+ | |
Tomcat | 9.0.93 -> 10.1.31 | |
Cordova (mobile apps) Android iOS | 12.0.0 13.0.0 17.5 |
- Cordova-iOS supports from iOS 16.
- Cordova-Android supports from iOS Android 24 (Nougat).
This is the default Tomcat runtime support. Apps can be deployed to any standard Java Web Server running on JDK 11. For more information, see here.
Build Environment for Studio
Build Environment
React Native
Environment Setup
Description | Version | |
---|---|---|
Java | 11 -> 17 | |
Node | 18.16.1 | |
Maven | 3.9.8 -> 3.9.9 | |
npm | 9.5.1 | |
Ant | 1.10.11 | |
Android Studio | Ladybug 2024.2.1 | |
SDK Build Tools | 34.0.0 | |
wm-reactnative-cli | 1.8.5 | |
Android Gradle Plugin (AGP) | 8.3 - 8.7 |
It is required to use Android Studio version be Iguana | 2023.2.1 or above and Android Gradle Plugin(AGP) version be 8.3 and above. The recommended versions for Android Studio is Ladybug | 2024.2.1 and AGP is 8.3.
Please ensure that your Android Studio has a compatible version of the AGP. Additionally, verify the compatibility of the AGP with the SDK build tools version, JDK, and Gradle version.
SDK Update
Description | Version |
---|---|
Expo | 50.0.17 |
React Native | 0.73.6 |
Angular Web and React Native Mobile
Description | Version | |
---|---|---|
Java | 11 -> 17 | |
Node | 18.16.1 | |
Maven | 3.9.8 -> 3.9.9 | |
npm | 9.5.1 | |
Ant | 1.10.11 |
For more information about building projects with Maven, see here.