Skip to main content

Version 7.0 release note

danger

Warning: This release note corresponds to the future first minor version of the next major version 7.

It is in EARLY ALPHA heavy development stage. It means it is ABSOLUTELY not yet suitable for production nor just for development and testing.

This release note is also in its early redaction stage.

Compatibility breaking changes

Among the reasons for this version to be the first minor version of a new major version are the changes at the level of the underlying technical components:

  • JVM level
  • Tomcat version

The platform is now compiled at JVM level 21 (vs 17 for previous major version 6 and 11 for previous major version 5).

This has no impact except if you where using in your some some Java APIs marked as deprecated for several Java versions and that may have been finally removed from the JVM.

note

Our latest Docker images are built with a JVM 21+ since major version 6 (JVM 25 for this major version 7), if you had deprecated Java APIs usage in your code you should have already seen it as warnings or errors when compiling your code within the platform and thus should not be impacted by the JVM level change at platform level.

The target Tomcat version for major version 7 is now Tomcat 11.

The impact is that Tomcat 11 is using Jakarta EE 11 instead of JEE 8 for previous Simplicité version's Tomcat 9 target. This means if your code is using imports like javax.servlet.* you MUST refactor them to jakarta.servlet.*. Except if you have some other very specific code, the only potential usages of these package are in the following platform hooks: customStartPage, customErrorResponse and customAuth/customAuthPage.

Server-side components

The following outdated third party Java libs have been removed:

  • legacy Apache commons commons-fileupload v1 library, note that the commons-fileupload2-* v2 libraries are present since major version 5
tip

If you use them in your code and can't refactor their usage you can still re-add them specifically.

As announced in the version v6.2 release note (and recalled in the version v6.3 release note):

  • the legacy iText libraries have been removed and the associated helpers PDFTool and PDFDocumentExternalObject have been completely refactored to use the PDFBox libraries. Any code written for iText and/or with the help of the above helper classes must be rewritten accordingly.

As announced in the version v6.3 release note:

  • The deprecated GoogleMap helper JS tool gmap.js has been removed, if your custom code use it you should consider refactoring your code to use the Leaflet helper JS tool which provides an abstraction layer on top of the map services providers. Note that the existing GoogleMaps inclusion methods still include the GoogleMaps JS library but your code may also have to be refactored to use directly the GoogleMaps JS API if it was using the helper functions provided by gmap.js.

Client-side components

The historical locations of Bootstrap libs have (finally) been changed.

This may have an impact but only if you include them specifically using hardcoded paths (e.g. in a standalone external object page).

This should not be the case, as Java methods are provided to include these libraries properly without requiring knowledge of their locations (see below).

tip

There is no reason to re-include these Bootstrap libs specifically within a custom component of the generic UI because they are already included.

The changed locations are:

  • Bootstrap: /scripts/jquery/bootstrap5/* to /scripts/bootstrap5/* (the Java methods HTMLTool.bootstrapJS/bootstrapCSS should be used instead of hardcoded paths).
  • Bootstrap date/datetime picker: /scripts/jquery/bootstrap5-datetimepicker/* to /scripts/bootstrap5-datetimepicker/* (the Java methods HTMLTool.bootstrapDatetimePickerJS/bootstrapDatetimePickerCSS should be used instead of hardcoded paths).

Long text fields behavior vs truncation

  • FeatureFlag.TRUNCATE_TOO_LONG_TEXT is set to false by default.
    • the UX/UI is not impacted because field inputs are already limited to the max size
    • but the API create/update will get an error if a data is too long (against data truncation in 6.3)

UI constant Simplicite refactored as ES module

The new ES module Simplicite has been refactored to clean its root data. Now the Simplicite interface contains only:

  • Simplicite.Globals contains now all global variables from back-end: application infos ROOT, URL, FULL_VERSION, ENDPOINT... and user's common properties LOGIN, LANG, etc.
  • Simplicite.Application has been preserved (same as $app) to contain all model constants: CONTEXT_*, field TYPE_*, TRUE/FALSE, etc.
  • Simplicite.Ajax: unchanged namespace of model layer with ajax services to Session, Grant, BusinessObject, BusinessProcess, etc.
  • Simplicite.UI: unchanged namespace of UI layer, controllers and viewers
  • Simplicite.Diagram: SVG diagram modeler

Deprecations

All JVM core APIs marked as deprecated since version 17 should be refactored in your code as of now if you use them in order to avoid potential JVM-level compatibility breaking change in the future (see above).

Features

  • Nothing so far...

Enhancements

  • Nothing so far...

Maker Experience

  • Nothing so far...

Technical

  • Nothing so far...

Docker images

There is no impact if you use out of the box images.

If you customize these images at Tomcat level there might be some impacts because the version 7.x images are using Tomcat 11 which configuration files may slightly differ from Tomcat 9 used in previous versions' images. Make sure to review, and potentially adapt, your customization Dockerfiles.

Simplicité Instances Manager (SIM)

See this document for details on how to add version 7.0 on an existing SIM server