2010-06-22 4 views
4

J'essaye de conditionner un paquet OSGI en utilisant le plugin maven-bundle-plugin (qui utilise BND). Pour fonctionner correctement, le bundle doit importer un paquet qui ne se trouve pas dans le chemin de classe pendant le développement (car les références d'objet seront transmises aux méthodes du bundle en tant que références "Class").Forcer l'importation du paquetage OSGi par maven-bundle-plugin/BND

Je n'arrive pas à configurer la déclaration "Import-Package" dans le fichier pom.xml ou * .bnd afin que le packe soit inclus dans la partie OSGI Import-Package du MANIFEST. Je croyais que

Import-Package: de.foo.bar,* 

devrait faire le travail, mais comme de.foo.bar est pas dans le classpath (ou mieux ne pas déclarée comme une importation dans le code), il ne sera pas prise à la MANIFESTE.

Est-ce que quelqu'un a une idée sur la façon de forcer le paquet à être disponible dans la déclaration OSGi Import-Package MANIFEST.

Merci et salutations Klaus

Répondre

3

J'ai finalement trouvé une solution

Import-Package: de.foo.bar;resolution:=optional,* 

mettra "de.foo.bar" dans la déclaration "Import-Package" du MANIFEST.MF bundle, même si le paquet n'est pas importé par le code du bundle.

+0

Où l'avez-vous spécifié? Cela n'a pas fonctionné quand je l'ai ajouté au POM. – skaffman

+0

@skaffman Je l'ai ajouté dans la section '' de la configuration de maven-bundle-plugin (version 2.1.0). J'ai séparé les différents paquets par la virgule (',') et l'argument 'resolution' par le point-virgule ('; ') du paquet auquel il appartient. – FrVaBe