2022.12 What's new

General updates

  • Servoy now fully depends on Java 17, developer already shipped that for a year, but now the fully product also depends on this.

    • So also the deployment of a server or smart client installations have to use Java17.

    • The planning for the future is that always around 1 year after the release of a LTS of java we will move over.

    • So Java 21 will be the next LTS released in september 2023, so our 2024.12 will very likely be build on top of Java 21.

  • Eclipse is upgraded to 2022.09 (4.25)

  • Lot of designer improvements and fixes in the new Ti NGClient designer, like scrolling and changing form sizes

    • Also the autowizards (columns,tabs) are now more visible and can be reshown by a context icon or menu.

  • Theming improvements, also for dark mode, but we need a new eclipse (will be updated for 2023.3) to get a lot of improvements Eclipse did for the dark mode in there current upcoming version.

  • Client And Database performance profiling on admin page has now an extra option "log", This means the performance entries are just logged not aggregated in memory.

    • This is useful to do some very low overhead profiling on production system, where profile lines are just logged to a file.

Features/Api changes:

  • Variants Support in the Designer. If you use the latest Boostrapcomponent 2022.12 or higher, you enabled variants for certain components (for now button and labels). If you create a new solution in the media there is now a default "variants.json" file, which describes for what category there are special variants. So for a label or button we now have a few default variants. Variants are a set of classes, so you can have something like "btn", "btn-success", "btn-lg", "font-weight-bold" which is then a specific button that has those classes by default. (the other styleClass defaults are removed). Bootstrap Button/Label now have a "variants" property which is filled in with the variant name when you DnD a variant on the form. This value dictates at runtime what classes should be set by default. this also means that if you change a variant later on, that this will reflect all buttons that have that variant setin that property. This way a designer can introduce a certain set of wanted UI for Buttons and Labels that can then be used by other developers so you get a consistent LnF through the application. This Variants are configured in a module! (because also the less/styling is configured at that level). So if you want to use variants and the styling, make sure that variants and the default solution styling is really configured in a module that other modules then will depend on. So if you only have "variants.json" in your main solution, the modules of that solution will not see this. You need to move the variants and also all the styling to a module (so the default set of less files, including the theme) And the module should just have that as its style class, and the main solutiojn doesn't have to have it then configured in its style class.

  • databaseManager.disableRelatedSiblingsPrefetch: disable the prefetch that we do for relations and then siblings, so order -> order lines, when disabled we don't query other orderlines related foundsets based on different orders (siblings) then the order you ask it for.

  • application.clearUserProperties(): clears all users properties at once, (these are stored for ngclient in the local storage of the browser)

  • added ViewFoundset.getName()/duplicatFoundset()/getRecordIndex(ViewRecord) api to be more in line with a normal JSFoundset api.

  • ViewFoundset columns now really return the resulting columns instead of the underlying database columns (https://support.servoy.com/browse/SVY-17462)

  • ECMA improvements, added Arrays.xxxx functions and also introduced Map and Set objects.

  • CSP.form-action is now also an overridable action on the admin page. If you want to post to another domain the "self"

Last updated