Introduction
La version 4.6.0 Release Candidate 1 d’OpenIntegrationEngine (OIE) est désormais disponible. Cette version marque une étape importante pour la plateforme, avec des nouveautés majeures, des améliorations significatives, des corrections de bugs critiques et quelques changements cassants à prendre en compte avant la migration.
Cette release candidate est ouverte à la communauté pour test, validation et retour d’expérience. Les mainteneurs s’engagent à corriger les bugs critiques identifiés avant la sortie officielle (GA). Un bug est considéré comme critique s’il s’agit d’une nouvelle faille de sécurité (avec un score CVE élevé), d’une régression (comportement existant cassé de manière non intentionnelle) ou de tout autre problème jugé majeur par l’équipe.
Dans cet article, nous passons en revue les principales évolutions de cette version, afin de vous aider à anticiper les impacts sur vos projets et à tirer pleinement parti des nouvelles fonctionnalités.
Nouveautés
Fonctionnalités ajoutées
- Variable serverName dans les modèles d’alerte
- Une nouvelle variable serverName est désormais disponible dans les modèles d’alerte. Cette fonctionnalité est particulièrement utile pour les déploiements multi-instances, permettant une meilleure identification et personnalisation des alertes selon l’instance concernée.
- Substitution des variables d’environnement dans les fichiers de configuration pour le CLI, Il est maintenant possible d’utiliser des variables d’environnement directement dans les fichiers de configuration de l’interface en ligne de commande (CLI). Cette évolution répond à la demande #205 et simplifie la gestion des configurations dynamiques.
- Pretty-printer JavaScript
Un formateur de code JavaScript a été intégré à l’éditeur. Vous pouvez désormais formater manuellement votre code JavaScript pour une meilleure lisibilité et maintenabilité. - Action « Toggle Comment » dans le menu contextuel de l’éditeur
Une nouvelle action « Toggle Comment » (basculer le commentaire) a été ajoutée au menu contextuel (clic droit) de l’éditeur. Cette fonctionnalité permet de commenter ou décommenter rapidement des lignes de code, améliorant ainsi l’efficacité du développement.
Améliorations
Performances et expérience utilisateur
- Préservation de l’ordre des paramètres HTTP
- L’ordre des paramètres dans les mappings HTTP est désormais préservé, ce qui peut modifier le comportement des applications qui dépendaient de l’ordre non déterministe précédent.
- Lien vers les options de lancement de l’Administrateur
- Un lien direct vers les options de lancement de l’Administrateur a été ajouté à l’interface utilisateur de la page d’accueil. Cela facilite l’accès aux paramètres de configuration pour les utilisateurs.
- Amélioration des performances de recherche de messages
- Les métadonnées du ResultSet sont désormais mises en cache dans la méthode getMetaDataMapByMessageId, évitant ainsi les recherches ligne par ligne et améliorant significativement les performances.
- Chargement plus rapide des extensions
- Les appels API redondants pendant le démarrage ont été éliminés, ce qui accélère le chargement des extensions et réduit le temps de lancement de l’application.
- Mise à jour de la couleur par défaut de l’Administrateur
- La couleur par défaut de l’interface Administrateur a été mise à jour pour mieux correspondre à l’identité visuelle de la marque OIE.
- Comportement cohérent de recherche par date/heure
- La recherche par date et heure est désormais cohérente avec l’affichage du tableau, offrant une expérience utilisateur plus intuitive.
- Mise à jour du nom d’affichage de NCPDP
- Le nom d’affichage de NCPDP a été clarifié pour spécifier la norme plutôt que l’organisme de normalisation.
Refactorisation et optimisations techniques
- Amélioration des logs de MessageFilter
Les journaux (logs) de MessageFilter ont été améliorés, et les styles des éléments de recherche ont été refactorisés. Des tests JUnit ont également été ajoutés pour garantir la robustesse de ces modifications. - Suppression du panneau d’avertissement SSL et de la publicité NextGen
- Le panneau d’avertissement SSL et la publicité pour NextGen ont été retirés de l’interface client, simplifiant ainsi l’expérience utilisateur.
- Options de module --add-opens supplémentaires
- De nouvelles options de module --add-opens ont été ajoutées au fichier vmoptions par défaut, améliorant la compatibilité et la flexibilité de l’environnement d’exécution.
- Client est désormais AutoCloseable
- La classe Client implémente maintenant l’interface AutoCloseable, avec une méthode close() idempotente. Cela permet une meilleure gestion des ressources et évite les fuites potentielles.
- Remplacement de SimpleDateFormat par DateTimeFormatter
- Pour des raisons de sécurité thread-safe, SimpleDateFormat (non thread-safe) a été remplacé par DateTimeFormatter dans tout le codebase.
- Ajout de javadoc manquant pour les classes de l’API User
- La documentation Javadoc a été complétée pour les classes de l’API User, améliorant ainsi la lisibilité et la maintenabilité du code.
Corrections de bugs
Cette version inclut plusieurs corrections de bugs majeurs, dont certains avaient un impact significatif sur la stabilité et l’expérience utilisateur:
- Correction de l’échec de migration lors de la mise à jour vers la version 4.5.2
Un problème bloquant lors de la migration vers la version 4.5.2 a été résolu, permettant aux utilisateurs de mettre à jour leur instance sans interruption. - Correction de l’erreur 500 sur /api/openapi.yaml
- Une erreur HTTP 500 survenant lors de l’accès à l’endpoint /api/openapi.yaml a été corrigée, rétablissant le bon fonctionnement de l’API OpenAPI.
- Correction de l’affichage incorrect du statut dans le filtre de messages de l’UI Events
- Le filtre de messages dans l’interface Events UI n’affichait pas correctement le statut des messages. Ce problème a été résolu.
- Correction du bug JXTreeTable.getEditingRow
- Un bug dans la méthode JXTreeTable.getEditingRow a été corrigé. Cette correction est particulièrement importante pour les utilisateurs macOS, qui rencontraient des erreurs avec le client OIE.
- Correction de l’erreur de presse-papiers lors de la présence d’une image
- Une erreur survenait lorsque le presse-papiers contenait une image, notamment sous Linux. Ce problème a été résolu, améliorant la compatibilité avec les systèmes d’exploitation basés sur Linux.
- Correction de la perte potentielle de données lors de la sauvegarde des propriétés des plugins
- Un bug pouvant entraîner une perte de données lors de la sauvegarde des propriétés des plugins a été identifié et corrigé.
- Correction de la migration de la propriété log4j2 et ajout de la compression zip
- La migration de la propriété du répertoire log4j2 a été corrigée, et la compression zip a été ajoutée pour optimiser l’espace de stockage.
Changements cassants (Breaking Changes)
Cette version introduit plusieurs changements cassants qui nécessitent une attention particulière avant la migration:
Java 17 devient la version minimale requise
- Impact : Les JVM antérieures à Java 17 ne sont plus supportées. Les utilisateurs doivent mettre à jour leur environnement d’exécution vers Java 17 ou une version ultérieure.
Suppression des dépendances Xerces et xml-apis
- Impact : Les dépendances Xerces et xml-apis ont été supprimées. Tout code personnalisé qui importe directement org.apache.xerces.* doit être migré vers javax.xml.parsers.* ou org.xml.sax.*.
Changement du comportement de connexion (login) avec les noms d’utilisateur
- Impact : Les connexions sont désormais insensibles à la casse par défaut. Les comptes existants avec des noms d’utilisateur sensibles à la casse continueront de fonctionner via un mécanisme de compatibilité, mais il est recommandé de mettre à jour les identifiants pour éviter les problèmes futurs.
Mises à jour des dépendances
Plusieurs dépendances ont été mises à jour pour améliorer la sécurité, la performance et la compatibilité :
Dépendance | Version précédente | Nouvelle version |
log4j | 2.17.2 | 2.25.3 |
PostgreSQL JDBC driver | 42.6.0 | 42.7.8 |
jSch | 2.27.0 | 2.27.7 |
commons-lang3 | 3.13.0 | 3.20.0 |
commons-text | 1.10.0 | 1.15.0 |
apache-jsp | ||
Xerces / xml-apis | Supprimées |
- Mises à jour générales des dépendances commons et migration de javax vers jakarta pour une meilleure compatibilité avec les versions récentes des bibliothèques Java.
- Rafraîchissement général des jars de dépendances pour s’assurer que les versions les plus récentes et les plus sûres sont utilisées.
Conclusion
La version 4.6.0 Release Candidate 1 d’OpenIntegrationEngine apporte des améliorations majeures en termes de performances, de sécurité et d’expérience utilisateur. Cependant, les changements cassants (notamment la requête de Java 17 et la suppression de Xerces) nécessitent une attention particulière lors de la migration.
Nous encourageons vivement la communauté à tester cette version et à remonter tout problème via le dépôt GitHub ou les canaux de discussion dédiés. Vos retours seront pris en compte pour la version finale.
Restez à l’écoute pour la sortie officielle (GA) de la version 4.6.0 !