cant commencer bundle osgi parce que l'importation ne peut pas être résolu

J'ai fait une petite API Bundle et d'un service pack qui devrait utiliser l'API.

Dans mon maven pom.xml fichier, j'ai ajouté une dépendance au pour mon api bundle dans la version correcte comme ceci:

<dependency>
  <groupId>at.foobar.osgi.api</groupId>
  <artifactId>foobarapi</artifactId>
  <version>1.0</version>
</dependency>

je suis en utilisant le maven-bundle plugin pour créer les paquets, et à cause de cela j'ai utilisé mvn clean install de créer le fichier jar.
Le Manifeste ressemble à ceci (le service):

Manifest-Version: 1.0
Private-Package: at.foobar.osgi.producer
Built-By: foobar
Tool: Bnd-0.0.238
Bundle-Name: foobarproducer
Created-By: Apache Maven Bundle Plugin
Bundle-Version: 1.0
Build-Jdk: 1.6.0_26
Bnd-LastModified: 1332185439257
Bundle-ManifestVersion: 2
Bundle-Activator: at.foobar.osgi.producer.Activator
Import-Package: at.foobar.osgi.api,org.osgi.framework;version="1.4"
Bundle-SymbolicName: at.foobar.osgi.producer.foobarproducer

qui semble être OK pour moi. L'importation est là, donc tout devrait bien se passer.

maintenant, j'ai commencé jusqu'à l'équinoxe et installé l'API et le producteur bundle.
Ensuite je commence l'API, ce qui a bien marché. Mais quand je veux démarrer le Producteur de Service, j'obtiens cette erreur:

org.osgi.framework.BundleException: The bundle "at.foobar.osgi.producer.foobarproducer_1.0.0 [4]" could not be resolved. Reason: Missing Constraint: Import-Package: at.foobar.osgi.api; version="0.0.0"

Il semble que le cadre ne peut pas trouver de l'api, mais sa installé et démarré?

Avez-vous tiré de l'équinoxe de la console et exécuter des programmes.foobar.osgi.api' pour confirmer que le paquet est exporté par votre API bundle? Si vous avez un énorme défilement de la liste des paquets, ce qui signifie pas de bundle, les exportations de ce package. Je voudrais aussi essayer de "bundle [api-bundle-name]" afficher les packages qui l'API bundle ne l'exportation et le confirmer lui-même est commencé.
mh j'ai oublié d'exporter l'API... mais ce que je ne comprends pas pourquoi j'ai besoin de l'exporter? J'ai lu le Noyau spec et de la pensée que l'API paquet ne doit pas être exportées en raison de son résolu par osgi?
Le paquet doit être exportées par votre bundle OU inclus dans le bundle (c'est à dire répertoriés ir Privé-Package). Vous avez fait ni, par conséquent Bnd le détecte comme un package Importé. Probablement à l'Exportation est correct parce qu'il sonne comme une API que d'autres bundles souhaiterez peut-être utiliser.
Concernant votre question "l'API paquet ne doit pas être exportées en raison de son résolu par osgi"... cela ne signifie rien pour moi. Pourriez-vous préciser à quoi vous vous attendiez?
ah ok, je comprends maintenant, c'est exactement la question que j'ai posée dans mon commentaire!

OriginalL'auteur reox | 2012-03-19