X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fosgi%2FCmsActivator.java;h=94b08da4d316a37d7d614c74904c91c09a72ced3;hb=32967339d8b2b8b14cb748417be5a4dbb5389cfd;hp=fe7c80d3b0b5c0a91fc2686cf48eebe4a52707d5;hpb=641e3f3c535f540afd122d2a7b53389342f77002;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsActivator.java b/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsActivator.java index fe7c80d3b..94b08da4d 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsActivator.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsActivator.java @@ -21,19 +21,13 @@ import org.osgi.service.permissionadmin.PermissionInfo; */ public class CmsActivator implements BundleActivator { // private final static CmsLog log = CmsLog.getLog(CmsActivator.class); + private final static String PROP_ARGEO_OSGI_PARENT_UUID = "argeo.osgi.parent.uuid"; // TODO make it configurable private boolean hardened = false; private static BundleContext bundleContext; - void init() { - } - - void destroy() { - new GogoShellKiller().start(); - } - protected void initSecurity() { // code-level permissions String osgiSecurity = bundleContext.getProperty(Constants.FRAMEWORK_SECURITY); @@ -96,15 +90,15 @@ public class CmsActivator implements BundleActivator { cmsState.start(); bundleContext.registerService(new String[] { CmsState.class.getName(), NodeIdSupplier.class.getName() }, cmsState, null); - init(); - } @Override public void stop(BundleContext bc) throws Exception { try { - destroy(); CmsStateImpl cmsState = (CmsStateImpl) getService(CmsState.class); + String parentFrameworkuuid = bc.getProperty(PROP_ARGEO_OSGI_PARENT_UUID); + if (parentFrameworkuuid == null) + new GogoShellKiller().start(); cmsState.stop(); } finally { bundleContext = null;