J'ai un ServiceReference
et je veux vérifier si l'implémentation a une annotation. J'ai donc besoin de la classe d'implémentation.Obtenir l'implémentation de ServiceReference
Je compris comment obtenir les interfaces des services met en œuvre:
ServiceReference<T> reference = //
String[] interfaces = (String[]) reference.getProperty(org.osgi.framework.Constants.OBJECTCLASS);
Mais même avec le JavaDoc je ne peux pas comprendre comment obtenir la mise en œuvre (évidemment sans obtenir le service du contexte, parce que cela pourrait être une opération lourde et j'ai juste besoin de la classe).
Comment puis-je obtenir la mise en œuvre d'un ServiceReference
?
Gardez à l'esprit que même le registre des services OSGi ne connaît pas la classe d'implémentation de l'objet de service tant que le service n'a pas été récupéré dans le registre. En effet, le fournisseur peut instancier l'objet de service très tard en enregistrant un ServiceFactory. –