Question class path framework CDI
Bonjour,
Je développe actuellement un Framework construit avec CDI. CDI se dit comme étant une fabrique à Framework et cela est bien le cas. Le développement s'en trouve grandement accéléré. Seulement voila, je fait face à un problème de classpath, tout ce qu'il y a de plus classique mais qui me bloque énormément. Je me dis que pourtant la spécification CDI doit avoir prévu le coups.
Voici mon problème. Mon Framework sera incorporé à un projet parent via maven, gradle ou autre peu importe, sous forme de jar. Le Framework définit un ensemble de classes abstraites et d'interfaces. Cependant certaine implémentation son laissé à l'intention du développeur car spécifique au projet.
A certain endroit dans le framework un code comme ceci est exécuté :
Code:
1 2 3
|
@Inject
private @Foo foo; |
@Foo étant un stéréotype déclarant un qualifier, un scope et @named. Seulement l'implémentation déclarant @Foo est une classe du projet parent créée par le développeur utilisant le framework. Et c'est de la que vient le problème. Mon framework n'a pas accès au classpath du projet parent et du coups lève une exception "unsatified dependencies".
J'ai essayé d'utiliser les extensions CDI afin de pouvoir accéder à l'implémentation du projet parent via la réfléxivité et j'ai presque cru que cela marchait. En effet dans eclipse si le framework est déclarer en tant que projet dépendant dans le projet principal cela fonctionne. Mais lors d'un import classique via un jar cela ne fonctionne plus.
Quelqu'un aurait une idée pour me débloquer. Il doit bien y avoir un moyen de pouvoir utiliser une implémentation faite par le développeur avec CDI.