initializeContextFinder();
	public static BundleContext startup(String[] args, Runnable endSplashHandler) throws Exception {		if (Profile.PROFILE && Profile.STARTUP)			Profile.logEnter("EclipseStarter.startup()", null); //$NON-NLS-1$		if (running)			throw new IllegalStateException(EclipseAdaptorMsg.ECLIPSE_STARTUP_ALREADY_RUNNING);		initializeProperties();		processCommandLine(args);		LocationManager.initializeLocations();		loadConfigurationInfo();		finalizeProperties();		if (Profile.PROFILE)			Profile.initProps(); // catch any Profile properties set in eclipse.properties...		if (Profile.PROFILE && Profile.STARTUP)			Profile.logTime("EclipseStarter.startup()", "props inited"); //$NON-NLS-1$ //$NON-NLS-2$		adaptor = createAdaptor();		log = adaptor.getFrameworkLog();		// initialize context finder after the log has been created incase we need to log something.		initializeContextFinder();		if (Profile.PROFILE && Profile.STARTUP)			Profile.logTime("EclipseStarter.startup()", "adapter created"); //$NON-NLS-1$ //$NON-NLS-2$		osgi = new OSGi(adaptor);		if (Profile.PROFILE && Profile.STARTUP)			Profile.logTime("EclipseStarter.startup()", "OSGi created"); //$NON-NLS-1$ //$NON-NLS-2$		osgi.launch();		if (Profile.PROFILE && Profile.STARTUP)			Profile.logTime("EclipseStarter.startup()", "osgi launched"); //$NON-NLS-1$ //$NON-NLS-2$		String console = FrameworkProperties.getProperty(PROP_CONSOLE);		if (console != null) {			startConsole(osgi, new String[0], console);			if (Profile.PROFILE && Profile.STARTUP)				Profile.logTime("EclipseStarter.startup()", "console started"); //$NON-NLS-1$ //$NON-NLS-2$		}		context = osgi.getBundleContext();		if ("true".equals(FrameworkProperties.getProperty(PROP_REFRESH_BUNDLES))) //$NON-NLS-1$			refreshPackages(getCurrentBundles(false));		publishSplashScreen(endSplashHandler);		if (Profile.PROFILE && Profile.STARTUP)			Profile.logTime("EclipseStarter.startup()", "loading basic bundles"); //$NON-NLS-1$ //$NON-NLS-2$		long stateStamp = adaptor.getState().getTimeStamp();		Bundle[] startBundles = loadBasicBundles();		// set the framework start level to the ultimate value.  This will actually start things		// running if they are persistently active.		setStartLevel(getStartLevel());		if (Profile.PROFILE && Profile.STARTUP)			Profile.logTime("EclipseStarter.startup()", "StartLevel set"); //$NON-NLS-1$ //$NON-NLS-2$		// they should all be active by this time		ensureBundlesActive(startBundles);		if (debug || FrameworkProperties.getProperty(PROP_DEV) != null)			// only spend time showing unresolved bundles in dev/debug mode and the state has changed			if (stateStamp != adaptor.getState().getTimeStamp())				logUnresolvedBundles(context.getBundles());		running = true;		if (Profile.PROFILE && Profile.STARTUP)			Profile.logExit("EclipseStarter.startup()"); //$NON-NLS-1$		return context;	}