Conflit de dépendances suite migration vers 2021-2

1
0
-1

Bonjour,

Suite à une mise à jour de la version de Bonita de 7.11.1 vers 2021.2, et une mise à jour d'une librairie interne bonita-connecteurs pour référencer la nouvelle version du bonita-client en 7.13.0 utilisée, une erreur apparait pour conflit de dépendance suivante :

fr.acg.bpm.bonita:bonita-connecteurs:jar:22.1.0.0-SNAPSHOT dépend de org.bonitasoft.engine:bonita-client:jar:7.13.0 qui est en conflit avec des dépendances fournies par Bonita.

D'avance merci pour une explication.

2 answers

1
0
-1

Bonjour Nicolas,

En fait c'est un peu plus complexe que la simple dépendance bonita-connecteur. J'ai développé une bonita-facade qui fait l'interface entre plusieurs projets et les api bonita dont le bonita-connecteurs intégré dans les processus. La façade gère ainsi la connexion à Bonita et récupère un ProcessAPI avec le TenantAPIAccessor qui est client, et qui me permet de faire l'appel aux différentes API de Bonita. Peut être y a t il mieux à faire en terme de structure de projets ?

Et du coup je peux pas mettre la dependance bonita-client en provided dans bonita facade car bonita-connecteurs qui en dépend ne compile plus...

Merci pour ton retour.

Comments

Submitted by nicolas.chabanoles on Fri, 03/04/2022 - 14:42

Bonjour,

Pour une bonita-facade, dépendre de bonita-client et accéder aux APIs au travers de l'APIAccessor semble une bonne approche (si l'idée que je me fais de l'utilité de la facade est correcte ;-) )

Par contre je ne comprends pas le lien entre la facade et le connecteur qui lui est embarqué/déployé dans un processus et qui a un cycle de vie et de déploiement probablement indépendant de la bonita-facade. S'il est vrai que ces deux entités ont des cycles différents, j'aurais le réflexe de les mettre dans des projets séparés.

As tu un repo Git que je pourrais regarder pour te donner un avis plus pertinent? On peut passer en MP si tu veux?

Captain Bonita

Submitted by 3Fred9 on Fri, 03/04/2022 - 15:15

En fait le projet bonita-connecteurs qui est bien séparé du projet bonita façade embarque le code métier et utilise la façade pour accèder et mettre à jour les données du processus en même temps plutot de de passer pleins de paramètres aux connecteurs et de mettre à jour les variables en sortie... Et l'idée de ce projet et de pouvoir livrer plus facilement des modifications dans ces connecteurs en n'ayant à livrer que le jar plutot que de relivrer tous les processus...

Nous avons bien un dépôt git mais il est interne à mon entreprise...

Submitted by nicolas.chabanoles on Fri, 03/04/2022 - 15:38

Pas de soucis pour le repo Git :-)

Cela me semble dangereux comme design. En faisant cela le connecteur ne respecte pas le contrat avec Bonita et il se peut que cela génère des conflits de librairies, des comportements "étranges" du moteur en terme de gestion des transactions ainsi qu'un risque sur la cohérence des données... Sans une analyse plus approffondie, cela reste difficile à dire, mais mon premier réflexe est de penser que ce n'est peut-être pas une bonne idée.

En tous cas, une chose est sûre c'est que personne sur la communauté n'aura le même comportement de Bonita et ne sera en mesure de reproduire et aider en cas de problème.

Captain Bonita

Submitted by 3Fred9 on Fri, 03/04/2022 - 16:07

heu si les connecteurs respecte le contrat avec Bonita par le biais de la façade... bah écoute cela fait pas loin de 10 ans que cela tourne magnifiquement bien sans aucun problème de données ou de conflit... jusqu'à cette version... je comprends bien ta difficulté d'analyse... bon je vais essayer de résoudre mon problème de dépendance du bonita-client je sais pas trop comment...

1
0
-1

Bonjour,

Pourriez-vous vérifier si la dépendance vers bonita-client est en "provided"?

De plus pour ma compréhension, pourquoi votre connecteur dépend-il de bonita-client? En effet un connecteur s'exécute côté serveur (dans la JVM de bonita-server.jar) il n'y a pas beacoup de cas d'usage qui nécessite bonita-client.jar.

bonita-client.jar ---> (appelle) bonita-server.jar APIs ---> (execute) connecteur

Un connecteur qui embarque bonita-client pour rappeler les APIs de bonita-server crée une espèce de boucle. Ce n'est donc pas très courant. Quel est votre cas d'usage?

Captain Bonita

Notifications