Если я остановлю каркас OSGi, компоненты проекта OSGi не будут уничтожены (методы уничтожения не вызываются).Почему это так и как я могу их уничтожить.У меня есть собственная реализация запуска OSGi.Я использую хук завершения работы, а затем останавливаю среду OSGi:
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
Launcher.logService.log(LogService.LOG_WARNING, "HANDLE SHUTDOWN");
if(Launcher.framework != null) {
try {
Launcher.framework.stop();
} catch (BundleException e) {
Launcher.logService.log(LogService.LOG_ERROR, "Shutdown" + ((Launcher.framework != null) ? " of " + Launcher.framework.getSymbolicName() + " " : " ") + "failed!", e);
System.exit(-1);
}
}
}
});