Skip to main content

Nouveautés de la version 4.3

1. Mise à jour de WildFly, de JAVA et du socle technique

Migration vers Java 21 et WildFly 31 (Java 11 et 17 seront toujours supportés) ;

Le code Java a été modernisé avec, entre autres :

  • Migration de J2EE vers Jakarta 10 ;

  • Migration du framework OUI sur une base Jakarta Faces 4 (Mojarra) et abandonner définitivement l’API obsolète JSF version 1.2 ;

  • Les dépendances externes des librairies de fonctions sont automatiquement migrées de javax vers jakarta afin d’éviter d’avoir à les recompiler, même si cela serait toujours préférable ;

  • Utilisation les annotations CDI dans le code Jakarta Faces 4 et des EJB. Cela a permis de réduire la taille des fichiers de configuration web.xml et faces-config.xml ;

  • Migration d’Apache log4j v1.7 vers log4j v2 ;

  • Migration d'ehcahce v2 vers Infinispan ;

  • Migration d'Apache Tika v1 vers Tika v2 ;

  • Mise à jour de XDocReport en v2 ;

  • Cela implique la migration d’Apache Velocity en v2 (Les extensions $list et $iterator ne sont plus disponibles) ;

  • L'ancienne librairie de pool de connexion Proxool a été supprimée au profit de HikariCP ;

  • La librairie Groovy, utilisée par certains rapports JasperReports a été supprimée, car elle peut produire des OutOfMemoryError: Metaspace avec les rapports Jasper dont le template contient language="groovy", parce qu'il n'arrive pas à décharger de la mémoire les classes créées…

    Il faudra retirer ce language="groovy" de tous les fichiers jrxml pour les passer en mode Java.

    Il y a quelques différences de syntaxe, qu'il faudra vérifier :

      1. La comparaison de chaîne qui peut se faire avec ==, === ou !=, !== en mode Groovy mais qui doit utiliser .equals() ou ! .equals() en mode Java

      2. if (string) doit être remplacé par if (string != null && !string.isEmpty())

      3. if (nombre) doit être remplacé par if (nombre != null && nombre != 0)

      4. Les 'string' entre apostrophes doivent être converties en "string" avec guillemets

      5. Les chars entre guillemets doivent être placés entre apostrophes

      6. var ?: "Unknown" par var != null ? var : "Unknown"

Mise à jour de toutes les libraires JavaScript et notamment :

  • Mise à jour de Bootstrap v4.6.1 vers Bootstrap v5.3.2 ;

    Certaines classes utilitaires ont changé de nom. Les principales ont été automatiquement remplacées pendant la migration dans les contrôles :
    text-monospace => font-monospace, font-italic => fst-italic, font-weight- => fw-,
    Tout ce qui contenait Left et Right a été changé en Start et End pour le support futur de l’écriture de droite à gauche :
    ml- => ms-, mr- => me-, pl- => ps-, pr- => pe-,
    text-left => text-start, text-right => text-end

  • La librarie Paged.js, utilisée pour les rapports PDF, passe de la version 0.2.0 à la version v0.4.3 ;

  • Suppression de la librairie BrowsingModeDetector utilisée pour masquer l’option « Se souvenir de moi » du login en mode Navigation privée, car elle ne parvient plus à le détecter sur les navigateurs récents.

Mise à jour vers FontAwesome de v5.15 vers v6.5.1 (Certaines icônes ont été redessinées) ;

Les mots de passe ne sont plus hachés deux fois en SHA512, avant envoi, au niveau du navigateur, mais uniquement chiffrés en RSA avec une clé à usage unique ;

Les services worker n’enregistrent plus le service fetch pour les navigateurs qui n’en ont pas besoin pour installer l’application PWA. Cela permet de bénéficier de la page hors connexion par défaut de Chrome et évite d’avoir deux onglets ouverts lorsque le serveur n’est pas disponible (au cas où le certificat ne serait plus valide).

Activation par défaut, pour les nouvelles plateformes, des options de sécurité des mots de passe à 12 caractères, 3 parmi les 4 types + checkboxes

Les composants Checkbox et Radio ont été refaits, car ils ne fonctionnaient pas avec les lecteurs d’écran. ils utilisent désormais les classes CSS ouiCheckbox et ouiRadio. Il faudra revoir le style personnalisé.

2. Navigateurs supportés pour la version 4.3

Cette version marque la suppression du support pour les versions de Chrome < 57 et Opera < 44 en raison de leurs non-support des styles position : sticky et du display : grid.

De plus, le support de l’ancien navigateur Microsoft Edge (dit Legacy) (basé le son moteur EdgeHTML) est également supprimé en raison de son absence de support, entre autres, des styles :placeholder-shown et des tailles min-content, max-content et fit-content ;

Les versions minimales retenues pour la version 4.3 sont donc :

  • Mozilla Firefox 52

  • Google Chrome 57

  • Opera 44

  • Apple Safari 11 (et donc nécessite au minium MacOS 10.11 El Capitan pour ce navigateur)

  • Microsoft Edge 79

  • Apple Safari sous iOS 11 (et donc nécessite au minium un iPhone 5s, iPhone SE, iPad 5, iPad Mini 2, iPad Air, iPad Pro)

  • WebView iOS 11 (dont Chrome, Firefox, Edge et les autres navigateurs)

  • Google Chrome sous Android

  • Mozilla Firefox sous Android

  • Samsung Internet Browser 6.2 sous Android

  • WebView Android 5

3. Intégration de l'intelligence artificielle

Implémentation, dans le Designer d’un Chatbot compatible avec l’API « /chat/completion » d’OpenAI (ChatGPT), ou autre LLMs compatible avec cette API.

Pour le moment, elle n’est implémentée que dans les U.C. des modèles de données et des styles, et permet :

  • Dans les modèles de données, de demander la création ou la modification de table ou la création de données de tests ou autres requêtes de sélection ; dans ce cas, un bouton « Accepter cette proposition » apparaît et permet de jouer les requêtes liées en base et d’importer les tables ainsi créées.
  • Dans les styles, on peut demander à créer des styles pour un composant en particulier ; dans ce cas, un bouton « Accepter cette proposition » apparaît et permet d’insérer la proposition à la fin de la feuille en cours ou d’en créer une nouvelle si l'on n'est pas déjà sur une feuille. Il est également possible de demander de lister les variables CSS disponibles.

4. Autres fonctionnalités

Optimisation : les déclencheurs sans comportement lié à des applications, écrans, Web-services et messages boxes n’existent plus dans le référentiel afin d’améliorer les performances.
De plus, si un nouveau est créé dans une mise à jour, il n’est plus nécessaire de sauver l’objet pour le voir réapparaître.

Le style du composant Capture de média s’adapte mieux aux smartphones en mode Paysage.

Le monitoring de la plateforme est séparé en deux onglets « Utilisateurs connectés » et « Historique des accès » ;  il est désormais disponible quand on surveille un seul utilisateur.

Il est désormais possible de définir un événement Action sur le composant « Zone de saisie de texte » qui se déclenche avec la touche « Entrer ». Dans ce cas, les retours à la ligne doivent se faire en maintenant la combinaison de touches « Shift », « Ctrl » ou « Alt » + « Entrer ».

Le style des barres de défilement sur Chrome et Safari a été revu.

Le contrôle Liste de fichiers dispose d’options pour masquer les boutons Télécharger, Imprimer ou Plein écran lorsque la prévisualisation en plein écran est activée.