2013-05-30 3 views
3

J'expérimente avec OSGI et CDI. Je souhaite enregistrer mes services OSGI à l'aide d'annotations CDI et également récupérer les services OSGI enregistrés à l'aide de CDI.Comment utiliser OSGI avec CDI dans jboss?

J'ai trouvé ce qui suit: https://github.com/mathieuancelin/weld-osgi, il semble qu'il soit intégré dans le noyau de soudure. Mais quand je dépenend sur le weld-core 1.2.0.Beta1 ou 2.0.0.Final version, je ne trouve aucune des annotations spécifiées dans la documentation sur https://github.com/mathieuancelin/weld-osgi.

Ce weld-osgi le chemin à parcourir quand vous voulez utiliser OSGI avec CDI? Ou devrais-je utiliser le printemps? (Je préfère la soudure car mon AS est actuellement jboss EAP 6.1)

Dans quelle dépendance puis-je trouver les annotations spécifiées dans la documentation?

Merci!

Répondre

0

Je n'y ai pas travaillé, et je ne connais pas grand-chose à weld-osgi, mais vous devriez l'utiliser si vous voulez que OSGi et CDI jouent bien. Je suis à peu près sûr qu'il s'agit de jars séparés, vous devrez ajouter la dépendance weld-osgi à votre projet.

3

Actuellement, je ne conseille pas d'utiliser CDI pour travailler avec les services OSGi. La bibliothèque Weld-OSGi est encore très expérimentale et changera très probablement lorsque la spécification OSGi-CDI sera publiée.

À l'heure actuelle, une nouvelle spécification, OSGi-CDI (RFC 193), est en cours d'écriture dans le groupe d'experts Enterprise OSGi (je suis l'un des membres qui écrivent cette spécification). OSGi-CDI devrait faire partie de Enterprise OSGi R6 au début de l'année prochaine. Malheureusement, il est encore trop tôt pour commencer à l'utiliser, l'implémentation de référence est loin d'être terminée. Vous trouverez plus de détails sur la spécification à venir dans une présentation que j'ai donnée à EclipseCon cette année: https://speakerdeck.com/paulbakker/rfc-193-osgi-cdi

Je recommande fortement d'utiliser l'une des autres solutions d'injection de dépendances disponibles pour les services OSGi, de préférence Apache Felix Dependency Manager ou Dynamic. Prestations de service. Étant donné que ces deux bibliothèques sont construites directement sur l'API du service OSGi, vous n'avez pas besoin de faire glisser d'autres dépendances. Le modèle de programmation est évidemment différent de celui du CDI, mais les concepts sont très similaires, il devrait donc être facile à comprendre.

N'utilisez pas Spring non plus car il ne convient pas vraiment à OSGi (bien que cela puisse fonctionner).

Questions connexes