Cette page présente les principales nouveautés de JPlatform 10 SP2.
1. Nouvelles fonctionnalités
1.1 Alertes : Marquer toutes les alertes d'une publication comme lues
Depuis le menu des alertes de la topbar, ou depuis l'application des alertes, il est maintenant possible de marquer toutes les alertes sur une même publication comme lues. Si il y a par exemple 3 alertes de mise à jour, 2 alertes de vote, et une alerte de commentaire, et que l'on décide de marquer tout comme lu sur une de ces alertes, toutes les autres seront aussi marquées comme lues.
A noter que certaines alertes sont exclues du marquer tout comme lu, via propriétés (Notamment les recommendations).
Issue : JCMS-6846
1.2 Alertes : Se désabonner d'une publication
Il est possible de se désabonner d'une publication via le menu des alertes ou l'application des alertes via un menu contextuel dédié.
Issue : JCMS-6846
1.3 Alertes : tri chronologique ou antéchronologique
Il est désormais possible de trier les alertes et les recommendations par date de la plus récente à la plus ancienne (par défaut) ou vice-versa.
Issue : JCMS-7028
1.4 Éditeur de propriétés
A destination des administrateurs centraux, une nouvelle interface avancée d'édition de propriété fait son apparition dans l'espace d'administration.
Cet éditeur peut être accédé via le bouton "Avancé" disponible dans l'édition de propriété classique.
Issue : JCMS-6735
1.5 Contrôle des droits de consultation lors de la suppression d'un Groupe
Un groupe qui est utilisé comme droit de consultation d'une Publication
ou d'une Catégorie
levéra désormais une contrainte d'intégrité, du style :
Le groupe G est utilisé comme droit de consultation sur 2 publications. Veuillez d'abord le retirer de :
- Publication 1
- Publicaion 2
Ce contrôle permet notamment d'éviter qu'une Publication ne contenant qu'un seul Groupe de consultation, de se retrouver publique suite à la suppression du Groupe.
La suppression peut être forcée grâce à une case à cocher "Forcer la suppression" (Cf DataController.CTX_FORCE_DELETE
) depuis :
- la page d'édition de groupe (editGroup.jsp)
- le caddy des groupes
Note : le CTX_FORCE_DELETE
étant déjà positionné pour la suppression de Workspace
, la présence d'un "lien" ne bloquera pas la suppression du WS. Aussi, l'utilisateur ne sera pas prévenu de la présence de liens vers les groupes à supprimer lors de la suppression de WS.
Issue : JCMS-6305
1.6 Formulaires privés par défaut
Jusqu'à présent, les formulaires étaient visibles par tout le monde par défaut. Pour prendre en compte le RGPD, et la privacy by default, les formulaires sont désormais privés par défaut.
Les instances de Form.java
ne sont désormais accessibles par défaut que par :
- l'auteur du formulaire,
- le soumissionnaire (
submitMember
) (si nonnull
) - les membres ayant le droit de travailler dans le workflow de l'espace du formulaire
- les administrateurs de l'espace où est stocké le formulaire
- les admins centraux
Il est possible de prévenir ce comportement coeur sur un type FooForm
en déclarant une propriété telle que :
form.skip-default-privacy.{custom-suffix}: generated.FooForm
Issue : JCMS-6641
1.7 Information sur une publication : affichage des DB referrers
Lorsque l'on affiche la modale d'information sur une publication, l'onglet "Référents par champs liens" liste desormais aussi les DB publication référentes.
Exemple :
Issue : JCMS-6730
1.8 ACL : Affectation restreinte aux administrateurs centraux
Une nouvelle option "Affectation restreinte aux administrateurs centraux" fait son apparition sur les Liste de Controle d'Accès (ACL).
Cette option est activée par défaut et le comportement ne change pas pour les ACL existantes.
Cette évolution permet d'élargir l'utilisation d'une ACL dite "globale" (par opposition aux ACL d'espace de travail) normalement réservée aux administrateur centraux.
Le comportement par défaut fait qu'une ACL globale ne peut être assignées à un utilisateur que par un administrateur central (en affectant un groupe disposant de cette ACL à un utilisateur).
Grâce à cette évolution, une ACL peut être explicitement modifiée pour réduire cette restriction. Ainsi l'ACL pourra également être assignée aux utilisateurs, par des personnes ayant accès à l'administration centrale des membres.
Dans tous les cas, les gestionnaires de membre d'espace ne bénéficient pas de cette autorisation.
Issue : JCMS-6893
2. Nouveautés front-end
2.1 Image de fond de la page de login
Depuis la 10.0.0, il était déjà possible de choisir un dossier où -aléatoirement- une des images du dossier allait être utilisée comme telle image de fond.
Exemple :
jcms.resource.login-wallpapers: images/jalios/login/wallpapers
Désormais, pour un site privé, il est possible de choisir par propriété, une (et une seule) image précise comme image de fond de la page de login.
Exemple :
jcms.resource.login-wallpaper: plugins/FooPlugin/images/login.png
Issue : JCMS-6965
2.2 Cartes
Meilleure gestion du responsive pour les cartes en mode DECK
Les cartes se calent maintenant mieux en fonction de la largeur de la page ou du conteneur.
Issue : JCMS-6584
Tag CardData : Ajout d'un attribut linkParams
Permet de rajouter des paramètres sur le lien vers la donnée.
Issue : JCMS-7031
Centrage des cartes du wrapper inline
La classe CSS is-centered
permet de centrer les cartes du inline layout, et de limiter le nombre de cartes par ligne à 4. Combiné avec une pagination de 12 (multiple de 2, 3 et 4), on évite ainsi l'impression qu'il n'y a plus d'autres résultats.
Sans la classe "is-centered" :
Avec la classe "is-centered" :
Issue : JCMS-7180
Remplacement du template par défaut des cartes de Publication
Le template en 10 SP1 affichait les éléments suivants :
- Image
- Titre
- Résumé
Le template en 10 SP2 affiche seulement maintenant :
- Image
- Titre
Un template "full" est cependant proposé pour fournir le même nombre d'éléments qu'en 10 SP2 en appelant le template "full" dans la carte :
<jalios:card data="<%= myData %>" template="full" />
Issue : JCMS-7212
2.3 Icones
Nouvelles icônes de fichiers
Une partie des icônes de fichiers a été mis à jour. Liste :
- Adobe products
- Office products
- Open Office products
- Audio files
- Video files
- Image files
- Text files
- Font files
- Unknown files
Issue : JCMS-7090
Icônes SVG
Ajout du support des icones SVG.
Deux modes d'inclusion sont proposés : par référence d'un fichier SVG (au travers d'une balise <img>
) ou par inclusion de la balise <svg>
d'un fichier SVG.
Par défaut les icones SVG sont limités à 16px de hauteur. Il est possible de choisir la hauteur que l'on veut. Des classes CSS sont prédéfinies avec des hauteurs particulières : size-24
, size-32
, size-48
et size-64
.
Exemples de declaration de propriétés :
icon.my-icon1: svg: images/jalios/icons/myIcon.svg
icon.my-icon2: svg-inline: images/jalios/icons/myIcon.svg
L'utilisation se fait classiquement avec le tag <jalios:icon>
Exemples :
<jalios:icon src="my-icon1" />
<jalios:icon src="my-icon2" css="size-48"/>
Issue : JCMS-7016
2.4 Cohérence dans l'affichage "Pas de résultat"
JPlatform propose maintenant la JSPF front/app/doAppNoResult.jspf
qui affiche un message et un visuel pour les cas où une requête ne renvoie pas de résultats. Il est possible d'overrider l'icône, le texte et de rajouter du contenu via des attributs de request.
Issue : JCMS-6991
2.5 Forcer l'URL d'accueil de la topbar
L'attribut de requete topbar.home-url
permet de forcer l'URL utilisée lorsqu'on clique sur le logo dans la topbar.
Exemple d'usage :
request.setAttribute("topbar.home-url", item.getWorkspace().getDisplayUrl(userLocale));
Issue : JCMS-6695
2.6 Duration Field : ajout de l'option maxResolution
Il est possible de borner la plus grande résolution de temps (secondes, minutes, heures, jours, semaines, années) proposée dans le champ de type Durée. Ceci permet par exemple de proposer un durée qui peut être exprimée au plus en heure.
Exemple au sein d'une JSP :
<jalios:field name="duration" ...>
<jalios:control settings='<%= new DurationSettings().maxResolution("h") %>' />
</jalios:field>
Exemple dans une déclaration XML d'un type :
<field name="duration" editor="duration" type="long" default="0" minValue="1" maxResolution="h"/>
Issue : https://issues.jalios.com/browse/JCMS-6906
2.7 Recherche de membres : tri configurable
Le critère de tri utilisé pour l'affichage des résultats de recherche de membres, en topbar et en recherche complète, peut être modifié.
Issue : JCMS-6909
2.8 Web assets & déclaration
Il est possible de déclarer les JS et CSS d'une librairie Front via les propriétés.
Cela facilite la maintenance des JSPs lorsque la librairie évolue, et/ou ça permet de remplacer simplement (en limitant les problèmes de chemins obsolètes) une ressource par une version plus récente par exemple.
Exemples:
# Perfect Scrollbar
jcms.front.resources.jalios-scrollbar.css: css/lib/perfectscrollbar/1.x/perfect-scrollbar.css
jcms.front.resources.jalios-scrollbar.js: js/lib/perfectscrollbar/1.x/perfect-scrollbar.js
# Jalios Truncate
jcms.front.resources.jalios-truncate.js: js/lib/clamp/clamp.js, js/jalios/core/jalios-truncate.js
Côté JSPs, les librairies peuvent se charger ainsi :
jcmsContext.addWebAssets("jalios-scrollbar");
jcmsContext.addWebAssets("jalios-truncate");
Côté Java, on peut également utiliser :
WebAssetsUtils.addWebAssets(jcmsContext, "jalios-scrollbar");
WebAssetsUtils.addWebAssets(jcmsContext, "jalios-truncate");
Issue : JCMS-7032
2.9 Tri alphabétique des membres dans les formulaires d'édition de droits
Les membres affichés dans les formulaires d'édition de droits de lecture ou d'écriture sont maintenant triés par ordre alphabétique
Issue JCMS-6277
2.10 Wysiwyg - Table des matières
Le DOM généré pour les tables des matières insérées dans un champ wysiwyg a légèrement évolué pour mieux respecter les règles d'accessibilités.
Une balise H2 est désormais utilisée pour le titre de la table des matières, à la place de la précédente balise H1.
Exemple :
- Avant :
<nav class="toc"> <h1>Content</h1> <ul> ... </ul> </nav>
- Après :
<nav class="toc"> <h2>Content</h2> <ul> ... </ul> </nav>
Issue : JCMS-7136
2.11 Group Chooser : filtrage sur l'espace courant
L'interface de sélection d'un groupe s'ouvre maintenant sans filtrer sur l'espace courant.
Issue : JCMS-7176
3. Nouveauté back-end
3.1 Ajout du portail courant dans la session
Suite à JCMS-5130 nous évitions le changement de portail si une publication pouvait être affichée dans le portail courant disponible en session. Cette mécanique était désactivable par propriété. Cependant lorsqu'elle était désactivée, le portail courant n'était plus disponible en session, ce qui pouvait manquer lors du développement d'un PortalPolicyFilter
. Nous mettons maintenant systématiquement le portail courant dans la session.
Issue : JCMS-6568
3.2 DBEventLog : Ajout de la notification
Dans un cluster JSync, les réplicas s'échangent les événements hibernate au travers de la table DBEventLog
. Chaque réplica scanne cette table toutes les minutes pour traiter les événtuels nouveaux messages.
Cette table permet d'être robuste aux déconnexions et au partionnement.
Afin d'accélérer le traitement des DBEventLog
un système de notification a été mis en place. Lorsqu'un réplica ajoute un DBEventLog
il envoie une notification à son leader et le leader renvoie la notification aux autres réplica. Ainsi chaque réplica traite l'événement immédiatement.
Ceci a aussi permis de relâcher la fréquence de scan qui est désormais passée à 10 minute.
Issue : JCMS-6528
3.3 ReplicaMessage : amélioration de la notification
Les ReplicaMessage
ont été introduits dans JPlatform 10 pour permettre l'échange d'information entre réplica (cf. https://community.jalios.com/howto/replicamessage).
La diffusion des ReplicaMessage
repose sur le même principe que les DBEventLog
(scan d'une table des nouveaux messages). Afin d'accélérer la prise en compte des messages, un système de notification avait été mis en place dès la première version. Mais celui-ci ne fonctionnait que sur un site public.
Dans JPlatform 10 SP2, la notification des ReplicaMessage
fonctionne aussi pour les sites privés et des améliorations ont été apportées (traitement des envois dans une thread séparée permettant l'absorption des raffales de notification).
Issue : JCMS-6572
3.4 Relecture des propriétés "channel.public-path.*"
Il est désormais possible de sauver programmatiquement une propriété préfixée par "channel.public-path.
". Elle sera prise en compte à chaud. (Impacte InitFilter
et ResourceHelper
).
Evolution dans le cadre de JReady pour déclarer un FileDocument comme favicon du site, et le rendre accessible sur la page de login d'un site privé.
Issue : JCMS-6589
3.5 DBReferrerManager
La classe DBReferrerManager
permet de retrouver toutes les DB Publication référençant une publication donnée via un champ lien (mono ou multivalué).
Exemple d'utilisation :
Set<Publication> referrerSet = DBReferrerManager.getInstance().getReferrerSet(myPub);
Cette recherche est aussi disponible en appellant la méthode getReferrerSet()
sur une publication et en passant l'argument searchInDB
à true
:
Set<Publication> referrerSet = myPub.getReferrerSet(true);
Issue : JCMS-6729
3.6 Tri topologique des modules
Un nouvel algorithme de tri topologique est désormais appliqué pour ordonner les modules entre eux en respectant par ordre de priorité : les dépendances entre module, l'ordre déclaré sur chaque module et leur nom.
Issue : JCMS-6901
3.7 Sécurité : Same-site cookie
Tous les cookies envoyés par le serveur (méthode HttpUtil.addCookie
) utilisent désormais la norme Same-site cookie pour renforcer la sécurité et prévenir les attaques CSRF.
C'est notamment le cas cookie authentification memberId
.
La valeur utilisée pour cet attribut de cookie peut être configurée avec la propriété suivante dont la valeur par défaut en 10 SP2 est Lax
:
channel.security.SameSiteCookies: ({empty}|Lax|Strict)
Issue : JCMS-6752
3.8 Sécurité : controle CSRF à l'authentification
L'authentification par login / mot de passe requiert désormais la présence du jeton CSRF. Ceci renforce la protection contre les attaques par force brute et ajoute un niveau de contrôle supplémentaire.
Si cette amélioration devait engendrer une quelconque régression dans votre environnement, elle peut être désactivée avec la propriété auth-mgr.simpleauth.check-csrf: false
Issue : JCMS-6968
3.9 Liste des types d'un espace
Pour chaque type : ajout de l'icone et du module de provenance.
Issue : JCMS-6507
3.10 Liste des publications partagées entre espaces
Dans l'onglet Contenu du tableau de bord d'un espace, 2 rubriques apparaissent (si elles ont des données ) :
La liste de publications (de cet espace) rattachées à un autre espace
La liste des publications (d'un autre espace) rattachées à cet espace.
Issue : JCMS-6963
3.11 Recherche textuelle : filtre par catégories
Afin d'améliorer la performance lors des recherches textuelles, lorsqu'un affinement par catégories en mode exact est demandé, un nouveau champ présent dans l'index lucene est utilisé lors de la recherche.
Une réindexation complète des publications est nécéssaire après migration vers JPlatform 10 SP2.
Issue : JCMS-7046
3.12 Recherche textuelle : lucene, scoring et boost de champ
2 options expérimentales (débrayées par défaut) ont été ajoutées dans la mécanique de recherche lucene pour agir sur le score.
Explication :
Dans le mode de recherche textuelle par défaut de JPlatform (mode "tous les mots"), une troncature droite est automatiquement mise en oeuvre sur chacun des termes de la recherche. Ainsi, une recherche sur un terme permet de trouver tous les résultats contenant des mots commençant par ce terme (e.g une recherche sur "rapide" permet de trouver les publications contenant "rapide", "rapides", "rapidement").
Pour l'implémentation de la troncature droite, lucene utilise une PrefixQuery qui applique un calcul de score constant. L'utilisation de ce mode de scoring permet une recherche rapide, mais sans utilisation de l'algorithme de calcul de score sous jacent (tf/idf en standard).
La conséquence est double :
- le calcul du score des résultats est moins pertinent,
- il est impossible d'appliquer de façon efficace les boost par champ, qui sont possibles dans JPlatform en configurant les propriétés
query.lucene.boost.{engine-name}.{field-name}: {boost-value}
,
par exemplequery.lucene.boost.PUBLICATION.title: 42.0
pour obtenir un score plus important lorsque le texte trouvé est issu du titre de la publication.
Nouveautés :
La propriété query.lucene.scoring-boolean-rewrite.right-truncation.enabled
(dont la valeur par défaut est false
) peut être configurée à true
pour forcer l'utilisation d'un calcul de score avancé lors des PrefixQuery.
Cette configuration permet d'améliorer le calcul du score en standard et permet de mettre en oeuvre les boosts par champs de façon plus efficace.
La conséquence d'une telle configuration sera l'utilisation plus importante du CPU, ainsi que le risque de provoquer des erreurs TooManyClauses
lors de la recherche de terme ayant de très nombreuses déclinaisons dans l'index.
La propriété query.lucene.scoring-boolean-rewrite.all.enabled: true
permet d'appliquer le même calcul de score pour toutes les requetes de type MultiTermQuery
(et pas seulement celles générées pour la troncature droite)
Issue : JCMS-7005
3.13 Recherche textuelle : configuration du rattrapage pour les contenus multilingues
Lors de l'indexation des contenus multilingues dans le moteur de recherche, le comportement par défault de JPlatform est de rattraper chaque valeur vide dans la langue d'indexation courante, en utilisant la valeur du champ de la langue prinpale du contenu.
Lors d'une recherche, ce comportement permet à un utilisateur français de trouver un contenu principalement en anglais, et dont le titre français n'est pas renseigné, mais dont le titre anglais contient le texte recherché.
Une nouvelle option fait son apparition dans JPlatform pour modifier ce comportement (sa valeur par défaut est true
):
lucene.pub-indexing.default-to-main-language: false
Une réindexation complète des contenus est nécéssaire si cette option est modifiée.
Si l'option est modifiée à false
, un contenu sera trouvé lors d'une recherche si et seulement si le texte recherché est présent dans les champs dans la langue de recherche.
Issue : JCMS-7140
3.14 Base de données : failfast
Une nouvelle option est disponible pour modifier le comportement de l'application en cas d'indisponbilité de la base.
En cas d'indisponbilité de la base le comportement par défaut de la base est de tenter malgré tout le rendu de la page.
Si l'option channel.jcmsdb.fail-fast-if-no-connection: true
est activée, et qu'une connexion à la base ne peut être obtenue, l'accès à la page sera immédiatement interrompu et une page d'erreur sera affichée à l'utilisateur (page d'erreur configurable et introduite précédement via l'évolution JCMS-5756)
Issue : JCMS-5758
3.15 Base de données : JSPs sans transaction Hibernate
Afin d'améliorer la performance de l'application, et sa robustesse en cas d'indisponibilité de la base, certains JSP peuvent être déclarés explicitement comme ne nécessitant pas de transaction Hibernate.
Cette déclaration se fait par propriété en utilisant la syntaxe channel.non-transactional-path.{uid}: {relative/path/to/servlet}
En standard les JSPs suivant n'utilisent plus de transaction hibernate systématique :
# Path for which an Hibernate Transacton is not required and thus not started
channel.non-transactional-path.i18n-js: js/jalios/core/jalios-i18n-js.jsp
channel.non-transactional-path.properties-js: js/jalios/core/jalios-properties-js.jsp
channel.non-transactional-path.css-packer: css/csspacker.jsp
channel.non-transactional-path.js-packer: js/jspacker.jsp
Issue : JCMS-7125
3.16 Ajout d'une API REST de gestion des alertes
Deux nouveaux end-points font leur apparition pour gérer les alertes via Jalios Open API :
/rest/alert
: permet de créer une alerte
/rest/getAlerts
: permet d'obtenir les alertes web associées à l'utilisateur loggué
Issue : JCMS-6946
3.17 Ajout d'un nouveau suffixe de propriété
Les propriétés suffixées par .crypt
sont maintenant automatiquement chiffrées à la sauvegarde et déchiffrées à la lecture. Si elles sont éditables, un champ password est alors utilisé.
Issue : JCMS-6928
3.18 Modale d'édition générée : ajout du champ Espace de travail
La modale d'édition générée contient désormais en premier champ le choix du Workspace.
Issue : JCMS-7174
3.19 Logs debug dans la mécanique de résolution des portails
De nouvelles traces de debug permettent de comprendre comment se résolvent les portails suite à l'accès à une publication ou à une catégorie.
Issue : JCMS-6561
4. Modification d'API
Cette section évoque les changements effectués sur les API nécessitant des migrations si vous les utilisiez.
4.1 Wysiwyg : configuration d'éditeur
Le format des fichiers de configuration d'éditeur wysiwyg est modifié.
Dans JPlatform 10.0.0 ou 10.0.1, les configurations d'éditeur wysiwyg permettaient la saisie de valeur en javascript, ainsi que l'insertion de code javascript.
Ces syntaxes sont désormais invalides dans JPlatform 10 SP2 et doivent être adaptées.
Exemple :
/* /!\ The following syntax CANNOT be used in JPlatform 10 SP2 */
{
"some_callback" : function() {
/* say hello */
alert('Hellow "World"!' + "world");
},
"plugins" : 'foo,' +
'bar',
"height" : 2 * 21
}
A partir de JPlatform 10 SP2, seules les valeurs autorisées en JSON peuvent être renseignées dans un fichier de configuration.
- Une nouvelle convention fait son apparition pour permettre l'insertion de code javascript :
"@raw"/* ... */
Toutes les valeurs utilisant cette convention seront repris telles quelles lors de la génération du fichier d'initialisation de TinyMCE. - La syntaxe
"@raw{...}"
déjà existante en 10 SP1 peut également être utilisée pour parvenir au même objectif sur des simples valeurs tenant sur une seul ligne
Exemple :
/* Syntax modified for JPlatform 10 SP2 */
{
"some_callback" : "@raw"/*function() {
// say hello
alert('Hellow "World"!' + "world");
}*/,
"plugins" : "foo,bar",
"height" : "@raw{2 * 21}"
}
Le fichier js/jalios/core/wysiwyg/jalios-wysiwyg-configurations.js
permettant d'initialisation TinyMCE, et généré automatiquement à partir des fichiers de configurations, contiendra alors ces éléments :
[...]
"some_callback" : function() {
// say hello
alert('Hellow "World"!' + "world");
},
"plugins" : "foo,bar",
"height" : 2 * 21
[...]
Cette modification a été effectuée afin de retirer la dépendance de JPlatform à l'API Nashorn, déprécié dans Java 11 et succeptible d'être retirée dans les prochaines versions de Java.
Issue : JCMS-6822
4.2 Changement de contrat sur JcmsUtil.getLanguageMap(String[], boolean)
Le contrat de la méthode JcmsUtil.getLanguageMap(String[], boolean)
a été modifié pour éviter des usages incorrects pouvant conduire à de mauvais rendus ou à des vulnérabilités.
Cette modification de contrat a été effectuée sans préavis, un audit interne ayant montré que son usage était restreint au coeur du produit (aucun module Jalios n'en faisait usage). Cependant si vous utilisiez cette méthode pour vos développements, des adaptations peuvent être nécéssaires
Comportement avant modification :
le second paramètre booléen "escape
" permettait de demander ou non l'échappement HTML des valeurs traitées.
escape=true
: toutes les valeurs étaient échappées pour cibler du HTMLescape=false
: les valeurs étaient laissées telles quelles
Comportement après modification :
le second paramètre booléen a été renommé "acceptHtml
", il permet désormais d'indiquer si du HTML est accepté, mais un nettoyage des contenus à systématiquement lieu, quelque soit sa valeur
acceptHtml=true
: le format de chaque valeur est détecté pour adapter le nettoyage et autoriser ainsi l'utilisation de HTML en toute sécurité
- pour les valeurs HTML/JHTML : un nettoyage HTML du texte est effectué
- pour les autres valeurs : le texte est échappé pour cibler du HTML
acceptHtml=false
: toutes les valeurs sont échappées pour cibler du HTML
Synthèse :
- pour récupérer des valeurs en autorisant les contenus HTML, invoquer la méthode
JcmsUtil.getLanguageMap(..., true)
- pour récupérer des valeurs en interdisant les contenus HTML, invoquer la méthode
JcmsUtil.getLanguageMap(..., false)
(ou plus simplement la signatureJcmsUtil.getLanguageMap(...)
qui adopte ce comportement)
Issue : JCMS-7000
5. Dépendances
5.1 Back end / server side / Java
Librairie | Objectif | Issue JIRA |
---|---|---|
BouncyCastle | Garantir la compatibilité avec Java 11 et au delà. | JCMS-6701 |
JavaBean Activation Framework | Librairie ajoutée dans JPlatform pour garantir la compatibilité avec Java 11 et au delà dans lequel cette librairie n'est plus fournie en standard par la JVM. Ce framework était précédement fourni par l'environnement JavaSE (depuis la version 6). |
JCMS-6682 |
Java Mail | Mise à jour en cohérence avec la librairie JavaBean Activation Framework. | JCMS-6684 |
Derby | Correctif sécurité - CVE-2018-1313 | JCMS-6880 |
PDFBox et FontBox | Correctif sécurité - CVE-2018-11797 | JCMS-6876 |
JSoup | performance fix | JCMS-6875 |
ant | Java 9 | JCMS-6873 |
Apache Commons Codec | Java 9 module, bug fix | JCMS-6986 |
Apache Commons HTTP | API Google Drive | JCMS-6916 |
Apache Commons Lang3 | (dans module JTranslate et JSR286 uniquement) Java9 + Java11 |
|
Apache Commons Validator | Correctif générique pour bug JCMS-6389 | JCMS-6983 |
Jackson | API Google Drive | JCMS-6917 |
Gson | JTranslate API IBM Watson / Office365 API Microsoft Graph | JCMS-6949 |
metadata-extractor et XMP core | Correctif sécurité - CVE-2016-4216 | JCMS-6966 |
joda-time | Librairie mise à jour dans le pom parent pour utilisation par tous les modules et librairie dépendantes. |
JCMS-7175 |
5.2 Front end / client side / JavaScript
TinyMCE 4.8.5
https://www.tiny.cloud/docs-4x/changelog/
Issue : JCMS-6819
MediaElement.js 4.2.9
https://github.com/mediaelement/mediaelement/blob/4.2.9/changelog.md
Issue JCMS-6186
Mise à jour Truncate côté client
La librairie clamp.js
qui permet de faire du truncate côté client en JS a été mise à jour afin d'offrir un meilleur support de Internet Explorer et Firefox.
Handlebars 4.0.12
https://github.com/wycats/handlebars.js/releases/tag/v4.0.12
Issue : JCMS-6932
6. Certifications
Les nouveaux environnements suivant sont certifiés à partir de JPlatform 10 SP2
- Apache Tomcat 9.x
- Java 11 (Oracle JDK ou OpenJDK)
Des nouvelles versions des modules sont nécéssaires pour garantir le support de Java 11, elles seront diffusées ultérieurement à la sortie de JPlatform 10 SP2.
Sont toujours certifiés :
- Java
- Oracle JDK 8
- OpenJDK8
- Serveurs d'applications
- Apache Tomcat 8.5.x
- IBM WebSphere AS 9.0
- JBoss EAP 7.0 ou JBoss EAP 7.1
Consultez le