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 abandon de 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 (Common Dependency Injection) 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 convertis en "string" avec guillemets

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

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

Plusieurs libraires JavaScript ont été mises à jour 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 de l’écriture de droite à gauche (actuellement non-géré par la plateforme) :
    ml- => ms-, mr- => me-, pl- => ps-, pr- => pe-,
    text-left => text-start, text-right => text-end

  • La librairie Paged.js, utilisée pour les rapports PDF, passe de la version 0.2.0 à la version 0.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 icônes qui ont beaucoup changé ont été renommées avec le suffixe -alt et les icônes v5 originales ont été conservés. De plus, certaines icônes sont désormais plus fines en v6, c'est pourquoi celles-ci ont été renommées avec le suffixe -fine et les icônes v5 originales ont été conservé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 et de Samsung Internet Browser 6, car basé chrome 56.

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 7 sous Android

  • WebView Android 5

3. Expérimentations sur 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 :

  • Le champ de conversation apparaît en bas de ces modules. Le déplier affiche quelques exemples de questions à poser et d'actions à effectuer.
  • Dans les modèles de données, il est possible 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, il est possible de 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'utilisateur n'est pas déjà sur une feuille. Il est également possible de demander de lister les variables CSS disponibles.

4. Autres fonctionnalités

La documentation est désormais basée sur la plateforme BookStack : https://www.bookstackapp.com/

Optimisation : les déclencheurs sans comportement lié à des applications, écrans, services web et boites de messages 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.

On peut dorénavant 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 dans le Designer.

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.

Nouveau composant Interrupteur.

Le téléchargement des miniatures est limité aux seules sessions qui en ont besoin.

Le téléchargement des fichiers temporaire (/files/Temp/sessionHashed) est bloqué si le cookie de session ne correspond pas.

Dans le modèle de donnée, Numeric est désormais affiché à la place de Decimal, car c’est le type réellement déployé en base. De plus, ce nom est mieux adapté à ces champs, parce qu'ils peuvent aussi stocker des entiers s’ils ont une précision de 0.

La fonction generatePassword() de la librairie Password a été modifiée pour que les mots de passe tiennent compte de la politique de sécurité définie sur la plateforme.

Ajout d’une option Largeur minimale et maximale pour une journée sur le planning et le GANTT (Le planning peut être dézoomé à 1 pixel par jour).

Le planning et le GANTT voient leur limite du nombre de colonnes rehaussée à 1 4612 (soit 10 ans à 4 colonnes par jour) au lieu de 1 000, et comportent désormais une limite à 10 ans afin de réduire les problèmes en cas de zoom sur la partie droite du planning.

Possibilité de désactiver tous les services Web et planifications directement depuis l’accueil et le paramétrage de la plateforme en plus des modules Player, Designer et Identification.

Lorsque l’identification est désactivée, le formulaire d’identification n’affiche plus les différents champs, hormis sur la page /Login. Le message Seul l'administrateur peut se connecter en cliquant ici. apparaît sur la page d’accueil.

Les propriétés de configuration des SSO Kerberos et OpenIDConnect sont dorénavant regroupées dans un fichier de configuration séparé ontomanticsSSOConfig.properties.

Le formulaire de configuration d’OpenIDConnect dispose d’un onglet Propriétés Avancées ajoutant la possibilité de choisir précisément, pour chaque donnée de l’utilisateur, s'il faut l’importer et si oui, avec quelles propriétés renvoyées par le serveur OpenIDConnect. Ces propriétés sont affichées dans les logs DEBUG lors de la connexion d’un utilisateur.

Dans l’administration des groupes et des utilisateurs, il est désormais possible de retirer un utilisateur ou un compte de service web d’un groupe depuis le menu contextuel.

Une classe ontoColumnFiltered apparaît sur les entêtes de colonnes de tableau qui ont un filtre actif. Elle peut être utilisée pour changer la couleur de l’entête dans un style personnalisée.

Amélioration du fichier de description YAML des Web services.

Ajout des propriétés Tailles minimale et maximale sur les arguments de type Texte dans les services web fournis. La taille minimale est à 1 pour les champs requis reçus dans la requête, et 0 pour les autres. Un champ requis avec une taille minimale à 0 permet de forcer la présence du paramètre dans la requête même si elle est vide.

Ajout d'une option permettant de réorganiser les lignes des tableaux et GANTT.

Le composant Carte a été amélioré :

  • Ajout d’une option pour afficher les menus contextuels des éléments de carte dans leur bulle d'aide ;
  • Ajout d’une option pour rendre le champ de recherche dépliable ;
  • Le champ de recherche dispose d’un bouton pour vider le champ ;
  • Amélioration du style sur mobile + corrections ;

Optimisation en Designer sur les requêtes cherchant les modèles de donnée liés aux applications/projets.

Les modèle de données ne sont dorénavant plus accessibles dans d'autre projets, sauf avec l'option Modèle de données utilisable dans les autres projets.

Amélioration du Copier / Coller des requêtes entre des projets différents.

Amélioration de la gestion du clavier virtuel sur les mobiles.

Ajout d’une option sur les listes de cases à cocher pour activer les sélections à trois états sur les groupes d’éléments.

Les miniatures des fichiers PDF et texte utilisent désormais NodeJS et Chromium (si disponible) au lieu de Libre Office, car cette combinaison est plus performante et permet d’en générer plusieurs simultanément.

Ajout d’une option sur les saisies de textes et colonnes éditables permettant d’afficher un compteur de caractères avec sa limite si définie.

Possibilité de contrôler l'état déplié/replié des lignes dépliables d'un tableau croisé avec un champ de jeu de données.

Possibilité de ne pas trier les lignes dépliables d'un tableau croisé pour les afficher dans l’ordre du jeu de données.

Nouveau composant Signature à main levée adapté aux mobiles.

Le composant Agenda gère l'export au format ICalendar.

Possibilité de définir un menu sur la barre de titres des boites de dialogues.

Possibilité de générer des rapports de type Texte sans extension si le modèle lui-même n’en a pas.

L’action Charger une application dispose d'une nouvelle option pour l’ouvrir dans un nouvel onglet.

Amélioration des performances des tableaux croisés ;

L’import de fichier CSV gère dorénavant l’import par nom de colonne ;

L’import de fichier Excel, ODS et CSV par nom de colonne peuvent avoir un nom dynamique via une variable ;