2017-10-19 3 views
1

Je développe une fonction (composée de faisceaux) pour Opendaylight Carbon.opendaylight: comment inclure un fichier JAR de bibliothèque?

Je souhaite inclure un fichier jar tiers (libary) dans ma fonction. Comment puis-je faire ceci? Je ne veux pas l'inclure en tant que bundle - juste comme une bibliothèque de fichiers jar liée à mon bundle.

Je ne veux pas regrouper ce fichier tiers. Je veux juste l'inclure de telle sorte qu'il soit résolu par MY bundle. Merci.

Répondre

1

Vous ne pouvez pas non plus "vouloir l'inclure en tant que groupe" ni "vouloir regrouper ce fichier tiers". Comment/d'où attendez-vous OSGi (Karaf) pour charger les classes de votre JAR tiers alors ?!

Mais est peut-être plus bottelage facile que vous pouvez penser, parce que le maven-bundle-plugin (avec BND qu'il utilise en interne) peut essentiellement faire tout le travail pour vous si vous demandez gentiment à travers Embed-Dependency.

+0

Je pensais que les paquets étaient chargés - chacun dans son propre classloader - ce qui signifie que je ne pouvais pas appeler directement les méthodes d'un bundle (?) – LostInTheFrequencyDomain

+0

oui, les paquets sont chargés dans leur propre ClassLoader Package et Import-Package dans MANIFEST.MF). Donc, si vous avez un JAR tiers qui n'était pas un Bundle OSGi valide (c'est-à-dire qui n'a pas Export-Package & Co. dans son MANIFEST.MF), alors vous devez choisir "REPACKAGE" comme JAR tiers comme nouveau JAR, qui est un ensemble valide, et importe chaque élément de votre ensemble, OU pour intégrer ce fichier JAR tiers non-OSGi dans votre propre ensemble. HTH? – vorburger