Veuillez ne pas utiliser System.exit (0) pour fermer une infrastructure OSGi. Vous devriez le faire en arrêtant le paquet avec l'ID 0, le paquet System. De cette façon, vous donnez à tous les groupes une chance de fermer de manière ordonnée (par exemple pour libérer des ressources, etc.).
La spécification OSGi définit les éléments suivants (Spécification de base, R4.x, 4.2.6 Arrêt d'une infrastructure). L'arrêt peut être initié en arrêtant l'ensemble du système, [...] ou en appelant la méthode stop sur l'objet de structure.
Dans ce chapitre, une description détaillée est donnée ce qui se passe quand un cadre est arrêté.
Le paquet système resp. l'objet-cadre est également défini (chapitre 4.6 Le Bundle System):
Le faisceau de système ressemble à l'objet-cadre lorsqu'un cadre est lancé, mais les mises en œuvre ne sont pas tenus d'utiliser le même objet pour l'objet-cadre et le système paquet. Toutefois, les deux objets doivent avoir l'ID de regroupement 0, le même emplacement et le nom symbolique du regroupement. La spécification OSGi est disponible gratuitement sur le site Web de l'Alliance OSGi (http://www.osgi.org/Specifications/HomePage).
La méthode standard jusqu'à présent, c'est ce que j'ai décrit dans ma réponse. C'est le comportement spécifié dans les spécifications OSGi, également dans la prochaine version 4.2. La prochaine version (4.2.) comprendra le service de niveau de démarrage * optionnel * qui peut être utilisé pour contrôler le niveau de démarrage des ensembles (et le cadre). – akr