Ce qui suit est ce que je devais faire pour que cela fonctionne.
J'ai dû ajouter com.sun.management à la valeur systemProperties pour le bundle système, car j'étais nouveau à OSGI cela m'a pris du temps pour comprendre. J'utilise le maven-pax-plugin donc j'ai besoin d'ajouter la propriété suivante. La raison pour laquelle cela n'a pas fonctionné par défaut était équinoxe mon conteneur osgi de choix n'inclut pas les paquets com.sun. * Dans le paquet système par défaut. Ceci était évident en regardant le paquet système avec la commande bundle 0 car le bundle 0 est toujours le bundle système qui était quelque chose de nouveau pour moi. Après l'ajout de cette commande, l'ensemble système comprend com.sun.management et mon ensemble déployé sans problème.
La raison pour laquelle équinoxe n'inclut pas les packages com.sun dans systemProperties, par défaut, voir here. (Un programme Java qui appelle directement les paquets sun. * n'est pas garanti pour fonctionner sur toutes les plateformes compatibles avec Java.En fait, un tel programme n'est pas garanti fonctionner même dans les futures versions sur la même plate-forme.)
vous avez deux options pour ajouter com.sun au conteneur osgi.
Solution A ': Groupes d'extension
Ceux-ci agissent comme des fragments; ils ne sont pas des faisceaux mais sont plutôt attachés à un hôte. Les bundles d'extension sont un type particulier de fragments qui sont attachés uniquement au bundle System afin de fournir des parties optionnelles du Framework. On peut utiliser ce mécanisme pour créer une extension vide qui déclare simplement les paquets nécessaires, laissant le chargement à son bundle d'hébergement (dans ce cas le Framework). Je ne suis pas allé sur cette route car la deuxième option était plus rapide à mettre en œuvre.
Solution B: Délégation Boot
L'option Je suis allé dans la fin était la délégation de démarrage. Cela permet à l'utilisateur de créer des packages «implicites» qui seront toujours chargés par le chargeur de classe parent du framework, même si les bundles ne fournissent pas les importations appropriées. J'ai réalisé en définissant les paquets système pour inclure com.sun.management.
Voir ci-dessous l'excellent link qui décrit l'ensemble du problème plus en détail.
Merci VonC oui désolé J'essaie de résoudre le problème de dépendance. Le paquet est dans rt.jar qui fait partie de la jre lib donc je me suis méfié de l'emballer mais je vais essayer et rapporter ici. –
@Paul: peut-être ce fil peut également aider, avant d'emballage rt.jar: http://www.mail-archive.com/[email protected]/msg00518.html – VonC
Un grand merci pour le lien m'a pointé dans le bon sens j'ai ajouté le détail ci-dessous sur les raisons pour lesquelles les paquets com.sun ne sont pas inclus par défaut. –