code: @Override
  	public void stop(BundleContext context) throws Exception {
  		final String sourceMethod = "stop"; //$NON-NLS-1$
  		boolean isTraceLogging = log.isLoggable(Level.FINER);
  		if (isTraceLogging) {
  			log.entering(Activator.class.getName(), sourceMethod, new Object[]{context});
  		}
  		super.stop(context);
  		// Shutdown the aggregator instances
  		ServiceReference<?>[] refs = context.getServiceReferences(IAggregator.class.getName(), null);
  		if (refs != null) {
  			for (ServiceReference<?> ref : refs) {
  				AggregatorImpl aggr = (AggregatorImpl)context.getService(ref);
  				if (aggr != null) {
  					try {
  						aggr.shutdown();
  					} catch (Exception e) {
  						if (log.isLoggable(Level.SEVERE)) {
  							log.log(Level.SEVERE, e.getMessage(), e);
  						}
  					}
  				}
  			}
  		}
  
  		for (ServiceRegistration<?> reg : serviceRegistrations) {
  			reg.unregister();
  		}
  		if (executors != null) {
  			executors.shutdown();
  		}
  		this.executors = null;
  		Activator.context = null;
  
  		if (isTraceLogging) {
  			log.exiting(Activator.class.getName(), sourceMethod);
  		}
  	}
docs: /* (non-Javadoc)
  @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)