code: @Override
  	public void start(BundleContext context) throws Exception {
  		final String sourceMethod = "start"; //$NON-NLS-1$
  		boolean isTraceLogging = log.isLoggable(Level.FINER);
  		if (isTraceLogging) {
  			log.entering(Activator.class.getName(), sourceMethod, new Object[]{context});
  		}
  		super.start(context);
  
  		// Verify the bundle id.
  		if (!context.getBundle().getSymbolicName().equals(BUNDLE_NAME)) {
  			throw new IllegalStateException();
  		}
  		serviceRegistrations = new LinkedList<ServiceRegistration<?>>();
  		Activator.context = context;
  		Dictionary<String, String> dict = new Hashtable<String, String>();
  		dict.put("name", BUNDLE_NAME); //$NON-NLS-1$
  
  		ServiceRegistration<?> commandProviderReg = registerCommandProvider();
  		if (commandProviderReg != null) {
  			serviceRegistrations.add(commandProviderReg);
  		}
  		// Create the executors provider.  The executors provider is created by the
  		// activator primarily to allow executors to be shared by all of the
  		// aggregators created by this bundle.
  		dict = new Hashtable<String, String>();
  		dict.put("name", BUNDLE_NAME); //$NON-NLS-1$
  		executors = newExecutors();
  		serviceRegistrations.add(
  				context.registerService(IExecutors.class.getName(), executors, dict));
  
  		if (isTraceLogging) {
  			log.exiting(Activator.class.getName(), sourceMethod);
  		}
  	}
docs: /* (non-Javadoc)
  @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)