# OSGi shutdown



## cui23 (3. Aug 2008)

Hallo.

Ich hoffe ich habe das richtige Forum gefunden...

Was ich suche, ist eine Möglichkeit, von einem Bundle aus die OSGi-Plattform zu beenden.
Sprich ich suche nach einer Möglichkeit so ähnlich wie folgende:

```
bundleContext.getPlattform().shutdown();
```

Gibt es sowas in der Art?

lg,
cui.


----------



## ps (3. Aug 2008)

die plattform ist die unterste ebene, drüber kommen die bundles. wenn jetzt ein bundle die plattform beenden möchte so würden alle anderen bundles crashen und die gesamte anwendung obendrein.
wozu willst du das denn machen? wieso machst du nicht einfach ein System.exit(int) ?


----------



## cui23 (3. Aug 2008)

nein, was ich suche ist ein befehl, das die Plattform sich kontrolliert beendet. D.h., dass sie zunächst alle Bundles stoppt/deinstalliert (und den Bundles somit die Möglichkeit gibt aufzuräumen etc.) und sich dann beendet.

Wenn ich System.exit aufrufe, passiert das dann? Oder wird einfach alles abgewürgt?

Im prinzip such ich also nach einem equivalenten Befehl zu dem "close" in der Equinox-OSGi console.

lg


----------



## cui23 (7. Aug 2008)

keiner ne idee? das muss doch wohl irgendwie gehn oder, eclipse z.B. kann das ja auch..?


----------



## cui23 (28. Aug 2008)

Ich habe kürzlich die Antwort gefunden:

Man muss einfach das System-bundle stoppen

```
bundleContext.getBundle(0).stop();
```
Dann werden alle anderen Bundles ebenfalls (in der richtigen Reihenfolge) gestoppt.

Nun braucht man praktisch nur noch in irgendeinem (idealerweise in dem bundle mit dem niedrigsten start-level, da dieses als letztes gestoppt wird) Bundle System.exit in der stop methode aufrufen.

lg
cui


----------

