Bonjour,
Dans les années 2000, la programmation en C++ Windows et toutes les DLL qui étaient utilisées à cette fin avaient donné naissance au "DLL Hell" qui exprimait bien ce qui se passait : les versions de DLL en ligne lors de l'exécution d'un programme n'étaient jamais toutes exactement de la version attendue.
Quinze ans plus tard, Spring renoue avec ceci, mais par le biais des jars afin de proposer une variante de ce problème.
J'ai choisi un Framework Spring 4.1.7-RELEASE.
Au cours de mon développement, j'ai été amené à ajouter spring-security 4.0.4.RELEASE pour vite me rendre compte qu'il était prévu pour utiliser les composants spring-aop et spring-beans en version 4.2.5.RELEASE, trop en avance, faisant planter l'application sur des NoSuchMethodError.
Mais cela, je ne m'en suis pas aperçu tout de suite. Le bom spring-framework 4.1.7.RELEASE déclaré dans mon POM, substituait d'autorité les jars en 4.1.7.RELEASE, rendant la détection de ce problème difficile.
Alors, avant de remettre ce BOM en place, je redescendu doucement de version de spring-security, jusqu'à la spring-security 4.0.2.RELEASE qui m'amène les spring-aop et spring-beans en 4.1.6.RELEASE, et cela fonctionne mieux.
Parce que la 4.1.6.RELEASE n'est pas trop loin de la 4.1.7.RELEASE.
De la même manière, spring-data 1.8.4 a l'air de bien s'entendre avec spring-data-jpa 1.9.4.RELEASE (il ne fonctionne pas avec spring-data-jpa 1.8.4.RELEASE allez savoir pourquoi...), tout en remarquant dans sa compilation qu'il aurait préféré qu'un module spring-oxm 4.1.9.RELEASE l'accompagne.
En ce moment, je suis entrain de descendre à la version spring-data-jpa 1.9.2.RELEASE pour voir si elle se rapproche de la version oxm 4.1.7.RELEASE, mais ce n'est pas encore le cas : je vais voir ce que je peux trouver de plus proche de la 4.1.7.RELEASE.
Il manque une sorte de méta BOM à Spring.
Comment faites-vous pour établir qu'avec
Spring framework 4.1.7.RELEASE, il faut :
Spring security 4.0.2.RELEASE
Spring data 1.8.4.RELEASE
Spring-data-jpa 1.9.2.RELEASE
conjointement,
Même question sous forme de jeu (pas drôle comme jeu, je le sais bien...) :
Si je décide arbitrairement de passer à la version spring framework 4.2.3.RELEASE,
saurez-vous trouver les versions de spring-security, spring-data et spring-data-jpa qui vont s'accorder avec ?
Partager