protected void deactivate(final ComponentContext componentContext) { deregisterEngineFactories(); componentContext.getBundleContext().removeBundleListener(this); this.componentContext = null; }
private void registerExistingEngineFactories() { if (componentContext == null) { logger.warn("componentContext is null while trying to register" + "script engine factories in started bundles"); return; } Bundle[] bundles = componentContext.getBundleContext().getBundles(); for (Bundle bundle : bundles) { if (bundle.getState() == Bundle.ACTIVE) { List<String> engineFactoryNames = getEngineFactoryNames(bundle); registerEngineFactories(bundle, engineFactoryNames); } } }
protected void activate(final ComponentContext componentContext) { this.componentContext = componentContext; registerExistingEngineFactories(); componentContext.getBundleContext().addBundleListener(this); }
@Override public void bundleChanged(BundleEvent event) { Bundle bundle = event.getBundle(); switch (event.getType()) { case BundleEvent.STARTED: registerEngineFactories(bundle, getEngineFactoryNames(bundle)); break; case BundleEvent.STOPPED: long bundleId = bundle.getBundleId(); List<ServiceRegistration> serviceRegList = registeredFactories.get(bundleId); if (serviceRegList != null && !serviceRegList.isEmpty()) { for (ServiceRegistration serviceReg : serviceRegList) { serviceReg.unregister(); } registeredFactories.remove(bundleId); } break; } } }