Questions sur Java 11
Blackboard Learn utilise désormais Java 11.
Blackboard Learn SaaS 3800.0.0 et les versions ultérieures exécutent la version 11 de la plate-forme Java SE d'Oracle (publiée en septembre 2018). Ce changement se fait sur le serveur uniquement et n'affecte aucune des versions de Java que vous ou vos utilisateurs pouvez utiliser sur les appareils ou les navigateurs. Blackboard utilise la distribution de Java 11, prête à la production d'Amazon Corretto, qui nous permet de bénéficier d'une version entièrement prise en charge de Java sans frais. Afin de fournir une solution de qualité et de sécurité optimale, Blackboard Learn exploitera toujours la technologie Java la plus récente permettant de bénéficier d'une assistance sur le long terme.
Cette rubrique répond à un certain nombre de questions courantes pour vous aider, vous et votre établissement, à comprendre ce que le passage de Java 8 à Java 11 implique pour votre environnement Blackboard Learn.
Puis-je utiliser le JDK de Java 11 avec les versions antérieures de Learn ?
Non. Le JDK de Java 11 doit être utilisé uniquement avec les dernières versions de Blackboard Learn.
Quel est l'impact de Java 11 sur mon environnement Blackboard Learn ?
À partir de janvier 2024, la plupart des Building Blocks tiers ne seront plus pris en charge. Des extensions ont été accordées pour une prise en charge continue limitée de certains Building Blocks. Pour plus d'informations, consultez la rubrique Gérer les Building Blocks Learn SaaS.
Les changements concernent principalement les Building Blocks tiers. La plupart des Building Blocks continueront de fonctionner sans modification. Cependant, en raison des nombreuses modifications apportées entre Java 8 et Java 11, certains Building Blocks peuvent nécessiter des modifications importantes en fonction de la façon dont ils ont été créés.
Nous vous recommandons de tester tous les Building Blocks tiers dans des instances de test ou intermédiaires avant que cette version ne soit mise à disposition pour la production.
Les intégrations personnalisées aux implémentations SIS ou LDAP peuvent également être affectées par des chiffrements et des protocoles de sécurité désapprouvés ou supprimés.
Qu'est-ce que les administrateurs système doivent faire pour se préparer à ce changement ?
Building Blocks tiers
À partir de janvier 2024, la plupart des Building Blocks tiers ne seront plus pris en charge. Des extensions ont été accordées pour une prise en charge continue limitée de certains Building Blocks. Pour plus d'informations, consultez la rubrique Gérer les Building Blocks Learn SaaS.
Si vous utilisez des Building Blocks qui ne font pas partie du Blackboard Learn de base, vous devez les tester dans un environnement de non-production exécutant une version de Blackboard Learn à l'aide de Java 11. Signalez tous les problèmes que vous pourriez trouver dans le fournisseur de solutions pour les Building Blocks.
Ce test recommandé est une bonne pratique pour toute mise à niveau, mais nous vous encourageons fortement à l'effectuer pour cette mise à niveau en particulier, car les changements sont plus importants.
Intégrations de ligne de commande
Les intégrations qui impliquent l'invocation d'une ligne de commande peuvent être affectées. Les scénarios invoquant Java à partir d'un script de ligne de commande doivent inclure l'argument --add-modules=ALL-SYSTEM pour éviter les potentielles erreurs liées au module.
Les intégrations impliquant des dates ou des horodatages spécifiques aux paramètres régionaux peuvent être affectées par l'adoption du dépôt de données de paramètres régionaux (CLDR) commun par défaut dans Java 9 et versions ultérieures (voir https://openjdk.java.net/jeps/252 pour plus d'informations). Pour Java 11, Blackboard Learn remplacera le nouveau fournisseur de paramètres régionaux CLDR par défaut au profit de la prise en charge de la compatibilité descendante pour les données et la mise en forme des paramètres régionaux. En particulier, Blackboard Learn définira la propriété java.locale.provider comme suit : java.locale.providers=COMPAT,CLDR.
En fonction de l'utilisation et de la charge du client, des erreurs de type StackOverflow peuvent survenir en raison de la taille accrue de la pile d'appels pour la résolution des fichiers de classe dans Java 11. Nous pouvons contrôler le paramètre stacksize dans Tomcat via le paramètre bb-config.properties bbconfig.max.stacksize.tomcat . La recommandation précédente concernant la taille de pile était de 400K et le minimum actuellement recommandé sous Java 11 est de 700K.
Toutes les intégrations de ligne de commande basées sur Java avec Blackboard Learn doivent utiliser les mêmes paramètres pour garantir une compatibilité maximale.
Intégrations SIS et LDAP
Toute intégration reposant sur des suites de chiffrements plus anciennes ou moins sécurisées pour les implémentations SSL ou TLS ne fonctionnera pas sous Java 11. Consultez le bulletin d'assistance pour plus de détails.
Qu'est-ce que les développeurs doivent faire ?
En général, la plupart du code Java 8 est compatible avec Java 11 et fonctionnera. Cependant, certains Building Blocks peuvent nécessiter des mises à jour. Les exemples de Building Block qui nécessitent des mises à jour incluent :
- Un Building Block appartenant à la distribution Blackboard Learn qui se réfère à des bibliothèques ou à des bocaux tiers, ou qui en est dépendant.
- Dans ce scénario, les développeurs de Building Block doivent regrouper leurs propres copies des bibliothèques ou des bocaux tiers nécessaires à l'exécution de leur fonctionnalité de Building Block.
- Un Building Block qui dépend des classes du cadre EE (Enterprise Edition) qui ont été supprimées par Oracle dans Java 9 (voir https://openjdk.java.net/jeps/320 pour plus d'informations).
- Toute dépendance de ces classes supprimées doit être atténuée en les remplaçant par des paquets externes avec une fonctionnalité similaire.
- Un Building Block qui fait référence ou dépend de certaines API Java internes pourrait ne plus fonctionner sous Java 11. La plupart des paquets com.sun.* et sun.* sont internes et inaccessibles par défaut à partir de Java 9.
- Toute dépendance de ces paquets Java internes doit être atténuée en les remplaçant par des paquets externes avec une fonctionnalité similaire.
- De nombreux Building Blocks ne nécessitent pas de recompilation. Cependant, un recompilation peut être inévitable pour les Building Blocks qui reposent sur une ou plusieurs bibliothèques tierces qui doivent être mises à jour pour fonctionner avec Java 11 (par exemple, Spring).
- Pour être compatible avec Java 11, un Building Block qui dépend du cadre Spring doit être mis à jour pour utiliser Spring 5.1.X+.
Dans tous les cas, il est recommandé de recompiler le Building Block avec Java 11 et les derniers fichiers de bibliothèques API Blackboard publics.
En tant que développeur, est-il possible d'utiliser les fonctionnalités Java 11 ?
Oui, les développeurs peuvent désormais utiliser toutes les fonctionnalités propres au langage introduites dans Java 9 à 11. Cependant, la mise en œuvre de ces fonctionnalités signifie que le Building Block ne sera pas compatible avec les versions Java 8 de Blackboard Learn. Si le Building Block est propre à votre environnement, cet aspect est moins problématique. Mettez en œuvre les fonctionnalités Java 11 après la mise à niveau de Learn.
Les solutions destinées à plusieurs versions de Blackboard Learn peuvent nécessiter la création de deux Building Blocks distincts ou d'un seul Building Block compilé à l'aide des bibliothèques appropriées des versions cibles et des versions de compilateur source et cible pour répondre aux exigences de compatibilité à la fois de Java 8 et de Java 11.
Comment puis-je en savoir plus sur les Building Blocks ?
Lisez notre rubrique Gérer les Building Blocks Learn SaaS pour obtenir les dernières informations.