Fixed bug 78004 - PluginActivator.ensureNormalStartup() is a bogus check
diff --git a/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/compatibility/PluginActivator.java b/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/compatibility/PluginActivator.java
index 3ae9a03..896993d 100644
--- a/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/compatibility/PluginActivator.java
+++ b/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/compatibility/PluginActivator.java
@@ -11,44 +11,19 @@
 package org.eclipse.core.internal.compatibility;
 
 import org.eclipse.core.internal.plugins.PluginDescriptor;
-import org.eclipse.core.internal.runtime.InternalPlatform;
-import org.eclipse.core.runtime.*;
-import org.osgi.framework.*;
-import org.osgi.service.startlevel.StartLevel;
-import org.osgi.util.tracker.ServiceTracker;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
 
 public class PluginActivator implements BundleActivator {
-	private BundleContext context;
 	private Plugin plugin;
 
-	private static ServiceTracker startLevelTracker = null;
-
-	public static void closeStartLevelTracker() {
-		if (startLevelTracker == null)
-			return;
-		startLevelTracker.close();
-		startLevelTracker = null;
-	}
-	public static StartLevel getStartLevel(BundleContext context) {
-		if (startLevelTracker == null) {
-			startLevelTracker = new ServiceTracker(context, StartLevel.class.getName(), null);
-			startLevelTracker.open();
-		}
-		return (StartLevel) startLevelTracker.getService();
-	}
-
-	public BundleContext getBundleContext() {
-		return context;
-	}
-
 	public PluginActivator() {
 		super();
 	}
 
-	public void start(BundleContext ctx) throws Exception {
-		// will bail if it is not time to start
-		ensureNormalStartup(ctx);
-		this.context = ctx;
+	public void start(BundleContext context) throws Exception {
 		PluginDescriptor pd = (PluginDescriptor) Platform.getPluginRegistry().getPluginDescriptor(context.getBundle().getSymbolicName());
 		plugin = pd.getPlugin();
 		try {
@@ -62,26 +37,9 @@
 		}
 	}
 
-	private void ensureNormalStartup(BundleContext context) throws BundleException {
-		// TODO look at other ways of doing this to make it faster (getService is not as fast 
-		// as we might like but it is not horrible.  Also, we never close the tracker.
-		StartLevel startLevel = getStartLevel(InternalPlatform.getDefault().getBundleContext());
-		if (startLevel == null)
-			return;
-		if (startLevel.getStartLevel() <= startLevel.getBundleStartLevel(context.getBundle())) {
-			IStatus status = new Status(IStatus.WARNING, Platform.PI_RUNTIME, 0, org.eclipse.core.internal.plugins.Policy.bind("activator.applicationNotStarted", context.getBundle().getSymbolicName()), null); //$NON-NLS-1$
-			InternalPlatform.getDefault().log(status);
-			throw new BundleException(status.getMessage());
-		}
-	}
-
 	public void stop(BundleContext context) throws Exception {
-		try {
-			plugin.shutdown();
-			plugin.stop(context);
-			((PluginDescriptor) plugin.getDescriptor()).doPluginDeactivation();
-		} finally {
-			this.context = null;
-		}
+		plugin.shutdown();
+		plugin.stop(context);
+		((PluginDescriptor) plugin.getDescriptor()).doPluginDeactivation();
 	}
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/plugins/CompatibilityActivator.java b/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/plugins/CompatibilityActivator.java
index df56825..753b968 100644
--- a/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/plugins/CompatibilityActivator.java
+++ b/bundles/org.eclipse.core.runtime.compatibility/src-runtime/org/eclipse/core/internal/plugins/CompatibilityActivator.java
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.core.internal.plugins;
 
-import org.eclipse.core.internal.compatibility.PluginActivator;
 import org.eclipse.core.internal.runtime.CompatibilityHelper;
 import org.eclipse.core.internal.runtime.InternalPlatform;
 import org.eclipse.core.runtime.IPluginDescriptor;
@@ -29,7 +28,6 @@
 		IPluginDescriptor descriptor = CompatibilityHelper.getPluginDescriptor(Platform.PI_RUNTIME);
 		CompatibilityHelper.setPlugin(descriptor, null);
 		((PluginRegistry) org.eclipse.core.internal.plugins.InternalPlatform.getPluginRegistry()).close();
-		PluginActivator.closeStartLevelTracker();
 		CompatibilityHelper.nullCompatibility();
 	}