Please, don t use System.exit(0) to shut down an OSGi framework. You should to it by stopping the bundle with the ID 0, the System bundle. This way, you give all bundles a chance to shut down in an orderly manner (e.g. to free resources etc).
The OSGi specification defines the following (Core Specification, R4.x, 4.2.6 Stopping a Framework).
Shutdown can be initiated by stopping the system bundle, [...] or calling the stop method on the framework object.
In that chapter a detailed description is given what happens when a framework is shut down.
The system bundle resp. the framework object is also defined (chapter 4.6 The System Bundle):
The system bundle resembles the framework object when a framework is launched, but implementations are not required to use the same object for the framework object and the system bundle. However, both objects must have bundle id 0, same location, and bundle symbolic name.
The OSGi spec is available for free at the OSGi Alliance s website (http://www.osgi.org/Specifications/HomePage).