@Execute public void execute( @OSGiBundle BundleContext bundleContext, @Named(PLUGIN_LOCATION_PARAMETER) String pluginLocation, @Optional Logger logger) { try { URL fileURL = FileLocator.toFileURL(new URL(pluginLocation)); String refLocation = "reference:" + fileURL.toExternalForm(); Bundle installedBundle = bundleContext.installBundle(refLocation); installedBundle.start(Bundle.START_TRANSIENT); Activator.getDefault().addDynamicBundle(installedBundle); } catch (BundleException e) { if (logger != null) { logger.warn(e, "Failed to load plugin from: " + pluginLocation); } } catch (MalformedURLException e) { if (logger != null) { logger.warn(e, "Failed to load plugin from: " + pluginLocation); } } catch (IOException e) { if (logger != null) { logger.warn(e, "Failed to load plugin from: " + pluginLocation); } } }
@Execute public void execute( @OSGiBundle BundleContext bundleContext, @Named(PLUGIN_ID_PARAMETER) String pluginId, @Optional Logger logger) { Bundle bundle = Platform.getBundle(pluginId); if (bundle != null) { try { bundle.uninstall(); Activator.getDefault().removeDynamicBundle(bundle); } catch (BundleException e) { logger.warn(e, "Failed to uninstall bundle " + bundle.getSymbolicName()); } } }