another batch of changes
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/BundleRegistry.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/PluginRegistry.java
similarity index 94%
rename from ui/org.eclipse.pde.core/src/org/eclipse/pde/core/BundleRegistry.java
rename to ui/org.eclipse.pde.core/src/org/eclipse/pde/core/PluginRegistry.java
index 69e226d..ed22682 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/BundleRegistry.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/PluginRegistry.java
@@ -10,6 +10,6 @@
  *******************************************************************************/
 package org.eclipse.pde.core;
 
-public class BundleRegistry {
+public class PluginRegistry {
 
 }
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/TargetPlatform.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/TargetPlatform.java
new file mode 100644
index 0000000..28b799c
--- /dev/null
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/TargetPlatform.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.pde.core;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.pde.internal.core.ICoreConstants;
+import org.eclipse.pde.internal.core.PDECore;
+
+/**
+ * The central class for the plug-in development target platform. This class cannot
+ * be instantiated or subclassed by clients; all functionality is provided 
+ * by static methods.  Features include:
+ * <ul>
+ * <li>the target platform's OS/WS/ARCH</li>
+ * <li>the default application and product</li>
+ * <li>the available applications and products</li>
+ * </ul>
+ * <p>
+ * @since 3.3
+ * </p>
+ */
+public class TargetPlatform {
+
+	/**
+	 * Returns the target operating system as specified on the <b>Environment</b>
+	 * tab of the <b>Plug-in Development > Target Platform</b> preference page.
+	 *  
+	 * @return the target operating system
+	 */
+	public static String getOS() {
+		return getProperty(ICoreConstants.OS, Platform.getOS());
+	}
+
+	/**
+	 * Returns the target windowing system as specified on the <b>Environment</b>
+	 * tab of the <b>Plug-in Development > Target Platform</b> preference page.
+	 *  
+	 * @return the target windowing system
+	 */
+	public static String getWS() {
+		return getProperty(ICoreConstants.WS, Platform.getWS());
+	}
+
+	/**
+	 * Returns the target locale as specified on the <b>Environment</b>
+	 * tab of the <b>Plug-in Development > Target Platform</b> preference page.
+	 *  
+	 * @return the target locale
+	 */
+	public static String getNL() {
+		return getProperty(ICoreConstants.NL, Platform.getNL());
+	}
+
+	/**
+	 * Returns the target system architecture as specified on the <b>Environment</b>
+	 * tab of the <b>Plug-in Development > Target Platform</b> preference page.
+	 *  
+	 * @return the target system architecture
+	 */
+	public static String getOSArch() {
+		return getProperty(ICoreConstants.ARCH, Platform.getOSArch());
+	}
+
+	private static String getProperty(String key, String defaultValue) {
+		Preferences preferences = PDECore.getDefault().getPluginPreferences();
+		String value = preferences.getString(key);
+		return value.equals("") ? defaultValue : value; //$NON-NLS-1$
+	}
+
+}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java
index 4499fd6..991416b 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java
@@ -135,7 +135,7 @@
 	}
 
 	public void throwParseErrorsException(Throwable e) throws CoreException {
-		Status status = new Status(IStatus.ERROR, PDECore.getPluginId(), IStatus.OK,
+		Status status = new Status(IStatus.ERROR, PDECore.PLUGIN_ID, IStatus.OK,
 				"Error in the manifest file", //$NON-NLS-1$
 				e);
 		throw new CoreException(status);
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ClasspathUtilCore.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ClasspathUtilCore.java
index 783ff58..e6bc706 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ClasspathUtilCore.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ClasspathUtilCore.java
@@ -22,6 +22,7 @@
 import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.build.IBuild;
 import org.eclipse.pde.core.build.IBuildModel;
 import org.eclipse.pde.core.plugin.IFragment;
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/DependencyManager.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/DependencyManager.java
index 288eda2..5386105 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/DependencyManager.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/DependencyManager.java
@@ -28,7 +28,7 @@
 	 * 
 	 */
 	public static Set getSelfAndDependencies(IPluginModelBase model) {
-		return getDependencies(new Object[] {model}, new String[0], TargetPlatform.getState(), false);
+		return getDependencies(new Object[] {model}, new String[0], InternalTargetPlatform.getState(), false);
 	}
 	
 	/** 
@@ -36,7 +36,7 @@
 	 * 
 	 */
 	public static Set getSelfandDependencies(IPluginModelBase[] models) {
-		return getDependencies(models, new String[0], TargetPlatform.getState(), false);
+		return getDependencies(models, new String[0], InternalTargetPlatform.getState(), false);
 	}
 	
 	/** 
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ExternalModelManager.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ExternalModelManager.java
index 25c4a8c..78791be 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ExternalModelManager.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ExternalModelManager.java
@@ -9,7 +9,6 @@
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.pde.internal.core;
-import java.io.File;
 import java.net.URL;
 import java.util.Iterator;
 import java.util.StringTokenizer;
@@ -102,36 +101,6 @@
 	public void setModels(IPluginModelBase[] models) {
 		fModels = models;
 	}
-
-	public static URL[] getPluginPaths() {
-		Preferences pref = PDECore.getDefault().getPluginPreferences();
-		URL[] base = PluginPathFinder.getPluginPaths(pref.getString(ICoreConstants.PLATFORM_PATH));
-
-		String value = pref.getString(ICoreConstants.ADDITIONAL_LOCATIONS);
-		StringTokenizer tokenizer = new StringTokenizer(value, ","); //$NON-NLS-1$
-		
-		if (tokenizer.countTokens() == 0)
-			return base;
-				
-		File[] extraLocations = new File[tokenizer.countTokens()];
-		for (int i = 0; i < extraLocations.length; i++) {
-			String location = tokenizer.nextToken();
-			File dir = new File(location, "plugins"); //$NON-NLS-1$
-			if (!dir.exists() || !dir.isDirectory())
-				dir = new File(location);
-			extraLocations[i] = dir;
-		}
-		URL[] additional = PluginPathFinder.scanLocations(extraLocations);
-		
-		if (additional.length == 0)
-			return base;
-		
-		URL[] result = new URL[base.length + additional.length];
-		System.arraycopy(base, 0, result, 0, base.length);
-		System.arraycopy(additional, 0, result, base.length, additional.length);
-		
-		return result;
-	}
 	
 	public void removeModelProviderListener(IModelProviderListener listener) {
 		fListeners.remove(listener);
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ICoreConstants.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ICoreConstants.java
index d27dbb3..dc0b05c 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ICoreConstants.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/ICoreConstants.java
@@ -34,6 +34,17 @@
 	String GROUP_PLUGINS_VIEW = "group_plugins"; //$NON-NLS-1$
 	String ADDITIONAL_LOCATIONS = "additional_locations"; //$NON-NLS-1$
 	
+	// Target Environment
+	String OS = "org.eclipse.pde.ui.os"; //$NON-NLS-1$
+	String WS = "org.eclipse.pde.ui.ws"; //$NON-NLS-1$
+	String NL = "org.eclipse.pde.ui.nl"; //$NON-NLS-1$
+	String ARCH = "org.eclipse.pde.ui.arch"; //$NON-NLS-1$
+	
+	String OS_EXTRA = "org.eclipse.pde.os.extra"; //$NON-NLS-1$
+	String WS_EXTRA = "org.eclipse.pde.ws.extra"; //$NON-NLS-1$
+	String NL_EXTRA = "org.eclipse.pde.nl.extra"; //$NON-NLS-1$
+	String ARCH_EXTRA = "org.eclipse.pde.arch.extra"; //$NON-NLS-1$
+	
 	// Target JRE
 	String TARGET_JRE = "targetJRE"; //$NON-NLS-1$
 	
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/IEnvironmentVariables.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/IEnvironmentVariables.java
deleted file mode 100644
index 6317e5e..0000000
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/IEnvironmentVariables.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.pde.internal.core;
-
-public interface IEnvironmentVariables {
-	String OS = "org.eclipse.pde.ui.os"; //$NON-NLS-1$
-	String WS = "org.eclipse.pde.ui.ws"; //$NON-NLS-1$
-	String NL = "org.eclipse.pde.ui.nl"; //$NON-NLS-1$
-	String ARCH = "org.eclipse.pde.ui.arch"; //$NON-NLS-1$
-	
-	String OS_EXTRA = "org.eclipse.pde.os.extra"; //$NON-NLS-1$
-	String WS_EXTRA = "org.eclipse.pde.ws.extra"; //$NON-NLS-1$
-	String NL_EXTRA = "org.eclipse.pde.nl.extra"; //$NON-NLS-1$
-	String ARCH_EXTRA = "org.eclipse.pde.arch.extra"; //$NON-NLS-1$
-}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/TargetPlatform.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/InternalTargetPlatform.java
similarity index 95%
rename from ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/TargetPlatform.java
rename to ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/InternalTargetPlatform.java
index 0297c65..cb087ea 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/TargetPlatform.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/InternalTargetPlatform.java
@@ -31,11 +31,11 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.State;
 import org.eclipse.osgi.util.ManifestElement;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.plugin.IPluginExtension;
 import org.eclipse.pde.core.plugin.IPluginLibrary;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
@@ -50,7 +50,7 @@
 import org.osgi.framework.Constants;
 import org.osgi.framework.InvalidSyntaxException;
 
-public class TargetPlatform implements IEnvironmentVariables {
+public class InternalTargetPlatform {
 	
 	private static String REFERENCE_PREFIX = "reference:"; //$NON-NLS-1$
 	private static String FILE_URL_PREFIX = "file:"; //$NON-NLS-1$
@@ -204,7 +204,7 @@
 			throw new CoreException(
 				new Status(
 					IStatus.ERROR,
-					PDECore.getPluginId(),
+					PDECore.PLUGIN_ID,
 					IStatus.ERROR,
 					message,
 					e));
@@ -337,30 +337,6 @@
 				root);
 		config.configureFeatureEntry(featureEntry);
 	}
-
-	public static String getOS() {
-		String value = getProperty(OS);
-		return value.equals("") ? Platform.getOS() : value; //$NON-NLS-1$
-	}
-
-	public static String getWS() {
-		String value = getProperty(WS);
-		return value.equals("") ? Platform.getWS() : value; //$NON-NLS-1$
-	}
-
-	public static String getNL() {
-		String value = getProperty(NL);
-		return value.equals("") ? Platform.getNL() : value; //$NON-NLS-1$
-	}
-
-	public static String getOSArch() {
-		String value = getProperty(ARCH);
-		return value.equals("") ? Platform.getOSArch() : value; //$NON-NLS-1$
-	}
-
-	private static String getProperty(String key) {
-		return PDECore.getDefault().getPluginPreferences().getString(key);
-	}
 	
 	public static String[] getApplicationNames() {
 		TreeSet result = new TreeSet();
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/LoadTargetOperation.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/LoadTargetOperation.java
index e8d72ab..1679bc9 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/LoadTargetOperation.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/LoadTargetOperation.java
@@ -40,7 +40,6 @@
 import org.eclipse.pde.internal.core.ExternalModelManager;
 import org.eclipse.pde.internal.core.FeatureModelManager;
 import org.eclipse.pde.internal.core.ICoreConstants;
-import org.eclipse.pde.internal.core.IEnvironmentVariables;
 import org.eclipse.pde.internal.core.ModelProviderEvent;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PDEState;
@@ -105,15 +104,15 @@
 		IEnvironmentInfo env = fTarget.getEnvironment();
 		monitor.beginTask(PDECoreMessages.LoadTargetOperation_envTaskName, 1);
 		if (env == null) {
-			pref.setToDefault(IEnvironmentVariables.ARCH);
-			pref.setToDefault(IEnvironmentVariables.NL);
-			pref.setToDefault(IEnvironmentVariables.OS);
-			pref.setToDefault(IEnvironmentVariables.WS);
+			pref.setToDefault(ICoreConstants.ARCH);
+			pref.setToDefault(ICoreConstants.NL);
+			pref.setToDefault(ICoreConstants.OS);
+			pref.setToDefault(ICoreConstants.WS);
 		} else {
-			pref.setValue(IEnvironmentVariables.ARCH, env.getDisplayArch());
-			pref.setValue(IEnvironmentVariables.NL, env.getDisplayNL());
-			pref.setValue(IEnvironmentVariables.OS, env.getDisplayOS());
-			pref.setValue(IEnvironmentVariables.WS, env.getDisplayWS());
+			pref.setValue(ICoreConstants.ARCH, env.getDisplayArch());
+			pref.setValue(ICoreConstants.NL, env.getDisplayNL());
+			pref.setValue(ICoreConstants.OS, env.getDisplayOS());
+			pref.setValue(ICoreConstants.WS, env.getDisplayWS());
 		}
 		monitor.done();
 	}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/MinimalState.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/MinimalState.java
index 6d176c1..b3911f8 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/MinimalState.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/MinimalState.java
@@ -235,14 +235,14 @@
 
 	private Dictionary[] getProfilePlatformProperties() {
 		if (fExecutionEnvironments == null || fExecutionEnvironments.length == 0)
-			return new Dictionary[] {TargetPlatform.getTargetEnvironment()};
+			return new Dictionary[] {InternalTargetPlatform.getTargetEnvironment()};
 		
 		// add java profiles for those EE's that have a .profile file in the current system bundle
 		ArrayList result = new ArrayList(fExecutionEnvironments.length);
 		for (int i = 0; i < fExecutionEnvironments.length; i++) {
 			Properties profileProps = getJavaProfileProperties(fExecutionEnvironments[i]);
 			if (profileProps != null) {
-				Dictionary props = TargetPlatform.getTargetEnvironment();
+				Dictionary props = InternalTargetPlatform.getTargetEnvironment();
 				String systemPackages = profileProps.getProperty(Constants.FRAMEWORK_SYSTEMPACKAGES);
 				if (systemPackages != null)
 					props.put(Constants.FRAMEWORK_SYSTEMPACKAGES, systemPackages);
@@ -254,7 +254,7 @@
 		}
 		if (result.size() > 0)
 			return (Dictionary[])result.toArray(new Dictionary[result.size()]);
-		return new Dictionary[] {TargetPlatform.getTargetEnvironment()};
+		return new Dictionary[] {InternalTargetPlatform.getTargetEnvironment()};
 	}
 
 	private Properties getJavaProfileProperties(String ee) {
@@ -359,7 +359,7 @@
 	}
 
 	protected void logResolutionErrors() {
-		MultiStatus errors = new MultiStatus(PDECore.getPluginId(), 1,
+		MultiStatus errors = new MultiStatus(PDECore.PLUGIN_ID, 1,
 				"Problems occurred during the resolution of the target platform",  //$NON-NLS-1$
 				null);
 
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PDECore.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PDECore.java
index 8c8c7cd..b187a17 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PDECore.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PDECore.java
@@ -38,7 +38,7 @@
 import org.eclipse.update.configurator.ConfiguratorUtils;
 import org.osgi.framework.BundleContext;
 
-public class PDECore extends Plugin implements IEnvironmentVariables {
+public class PDECore extends Plugin {
 	public static final String PLUGIN_ID = "org.eclipse.pde.core"; //$NON-NLS-1$
 	
 	public static final String CLASSPATH_CONTAINER_ID = PLUGIN_ID + ".requiredPlugins"; //$NON-NLS-1$
@@ -59,9 +59,6 @@
 	public static PDECore getDefault() {
 		return inst;
 	}
-	public static String getPluginId() {
-		return getDefault().getBundle().getSymbolicName();
-	}
 	
 	public static IWorkspace getWorkspace() {
 		return ResourcesPlugin.getWorkspace();
@@ -81,7 +78,7 @@
 			status =
 				new Status(
 					IStatus.ERROR,
-					getPluginId(),
+					PLUGIN_ID,
 					IStatus.OK,
 					e.getMessage(),
 					e);
@@ -92,7 +89,7 @@
 		log(
 			new Status(
 				IStatus.ERROR,
-				getPluginId(),
+				PLUGIN_ID,
 				IStatus.ERROR,
 				message,
 				null));
@@ -117,7 +114,7 @@
 			status =
 				new Status(
 					IStatus.ERROR,
-					getPluginId(),
+					PLUGIN_ID,
 					IStatus.OK,
 					message,
 					e);
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java
index 8655462..7c3c55e 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PluginModelManager.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.pde.internal.core;
 
+import java.io.File;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -18,6 +20,7 @@
 import java.util.ListIterator;
 import java.util.Map;
 import java.util.Stack;
+import java.util.StringTokenizer;
 import java.util.TreeMap;
 
 import org.eclipse.core.resources.IProject;
@@ -28,6 +31,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jdt.core.IClasspathContainer;
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaCore;
@@ -423,7 +427,7 @@
 		fEntries = Collections.synchronizedMap(new TreeMap());
 		fState = new PDEState(
 						WorkspaceModelManager.getPluginPaths(),
-						ExternalModelManager.getPluginPaths(),
+						getPluginPaths(),
 						true,
 						new NullProgressMonitor());
 		
@@ -440,6 +444,37 @@
 		fSearchablePluginsManager.initialize();
 	}
 	
+	private URL[] getPluginPaths() {
+		Preferences pref = PDECore.getDefault().getPluginPreferences();
+		URL[] base = PluginPathFinder.getPluginPaths(pref.getString(ICoreConstants.PLATFORM_PATH));
+
+		String value = pref.getString(ICoreConstants.ADDITIONAL_LOCATIONS);
+		StringTokenizer tokenizer = new StringTokenizer(value, ","); //$NON-NLS-1$
+		
+		if (tokenizer.countTokens() == 0)
+			return base;
+				
+		File[] extraLocations = new File[tokenizer.countTokens()];
+		for (int i = 0; i < extraLocations.length; i++) {
+			String location = tokenizer.nextToken();
+			File dir = new File(location, "plugins"); //$NON-NLS-1$
+			if (!dir.exists() || !dir.isDirectory())
+				dir = new File(location);
+			extraLocations[i] = dir;
+		}
+		URL[] additional = PluginPathFinder.scanLocations(extraLocations);
+		
+		if (additional.length == 0)
+			return base;
+		
+		URL[] result = new URL[base.length + additional.length];
+		System.arraycopy(base, 0, result, 0, base.length);
+		System.arraycopy(additional, 0, result, base.length, additional.length);
+		
+		return result;
+	}
+
+	
 	public PDEState getState() {
 		initializeTable();
 		return fState;
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java
index e8c77ab..43842fe 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java
@@ -16,8 +16,7 @@
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 
-public class PreferenceInitializer extends AbstractPreferenceInitializer
-		implements IEnvironmentVariables {
+public class PreferenceInitializer extends AbstractPreferenceInitializer  {
 
 	/*
 	 * (non-Javadoc)
@@ -42,10 +41,10 @@
 					ExternalModelManager.computeDefaultPlatformPath());
 
 		// set defaults for the target environment variables.
-		preferences.setDefault(OS, Platform.getOS());
-		preferences.setDefault(WS, Platform.getWS());
-		preferences.setDefault(NL, Locale.getDefault().toString());
-		preferences.setDefault(ARCH, Platform.getOSArch());
+		preferences.setDefault(ICoreConstants.OS, Platform.getOS());
+		preferences.setDefault(ICoreConstants.WS, Platform.getWS());
+		preferences.setDefault(ICoreConstants.NL, Locale.getDefault().toString());
+		preferences.setDefault(ICoreConstants.ARCH, Platform.getOSArch());
 	}
 
 }
\ No newline at end of file
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/RequiredPluginsClasspathContainer.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/RequiredPluginsClasspathContainer.java
index df69034..69901f9 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/RequiredPluginsClasspathContainer.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/RequiredPluginsClasspathContainer.java
@@ -267,7 +267,7 @@
 		if (desc == null
 				|| "false".equals(System.getProperty("pde.restriction")) //$NON-NLS-1$ //$NON-NLS-2$
 				|| !(fModel instanceof IBundlePluginModelBase)
-				|| TargetPlatform.getTargetVersion() < 3.1)
+				|| InternalTargetPlatform.getTargetVersion() < 3.1)
 			return null;
 		
 		Rule[] rules;
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/SourceLocationManager.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/SourceLocationManager.java
index f3e4cf9..222cc58 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/SourceLocationManager.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/SourceLocationManager.java
@@ -154,7 +154,7 @@
 		IPluginExtension[] extensions = model.getPluginBase().getExtensions();
 		for (int j = 0; j < extensions.length; j++) {
 			IPluginExtension extension = extensions[j];
-			if ((PDECore.getPluginId() + ".source").equals(extension.getPoint())) { //$NON-NLS-1$
+			if ((PDECore.PLUGIN_ID + ".source").equals(extension.getPoint())) { //$NON-NLS-1$
 				processExtension(extension, result);
 			}
 		}				
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/build/BuildObject.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/build/BuildObject.java
index ea5af1f..548d4e7 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/build/BuildObject.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/build/BuildObject.java
@@ -45,7 +45,7 @@
 	}
 
 	protected void throwCoreException(String message) throws CoreException {
-		Status status = new Status(IStatus.ERROR, PDECore.getPluginId(),
+		Status status = new Status(IStatus.ERROR, PDECore.PLUGIN_ID,
 				IStatus.OK, message, null);
 		throw new CoreException(status);
 	}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java
index 9bc4f3a..da3e5bb 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java
@@ -57,7 +57,7 @@
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PDECoreMessages;
 import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.search.PluginJavaSearchUtil;
 import org.eclipse.pde.internal.core.util.IdUtil;
 import org.eclipse.pde.internal.core.util.VersionUtil;
@@ -155,7 +155,7 @@
 				|| base.getExtensions().length > 0);
 
 		if (hasExtensions) {
-			if (TargetPlatform.getTargetVersion() >= 3.1) {
+			if (InternalTargetPlatform.getTargetVersion() >= 3.1) {
 				if (!"true".equals(singletonDir)) { //$NON-NLS-1$
 					if ("true".equals(singletonAttr)) { //$NON-NLS-1$
 						if (isCheckDeprecated()) {
@@ -178,7 +178,7 @@
 			}
 		}
 
-		if (TargetPlatform.getTargetVersion() >= 3.1) {
+		if (InternalTargetPlatform.getTargetVersion() >= 3.1) {
 			if (singletonAttr != null) {
 				if (isCheckDeprecated()) {
 					String message = PDECoreMessages.BundleErrorReporter_deprecated_attribute_singleton;
@@ -901,7 +901,7 @@
 		if (!validateStartHeader(header))
 			return; // valid start header problems already reported
 		int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_DEPRECATED);
-		if (severity != CompilerFlags.IGNORE && TargetPlatform.getTargetVersion() >= 3.2) {
+		if (severity != CompilerFlags.IGNORE && InternalTargetPlatform.getTargetVersion() >= 3.2) {
 			int line = header.getLineNumber();
 			report(PDECoreMessages.BundleErrorReporter_startHeader_autoStartDeprecated, line + 1, severity, 
 					PDEMarkerFactory.M_DEPRECATED_AUTOSTART,
@@ -912,7 +912,7 @@
 	private void validateLazyStart() {
 		IHeader header = (IHeader) fHeaders.get(ICoreConstants.ECLIPSE_LAZYSTART);
 		int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_DEPRECATED);
-		if (header != null && TargetPlatform.getTargetVersion() < 3.2 && severity != CompilerFlags.IGNORE) {
+		if (header != null && InternalTargetPlatform.getTargetVersion() < 3.2 && severity != CompilerFlags.IGNORE) {
 			report(PDECoreMessages.BundleErrorReporter_lazyStart_unsupported,
 					header.getLineNumber() + 1, severity,
 					PDEMarkerFactory.NO_RESOLUTION,
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java
index 7d24e34..3e1241b 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java
@@ -27,6 +27,7 @@
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.osgi.util.NLS;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.build.IBuild;
 import org.eclipse.pde.core.plugin.IPluginExtensionPoint;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
@@ -35,7 +36,6 @@
 import org.eclipse.pde.internal.core.NLResourceHelper;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PDECoreMessages;
-import org.eclipse.pde.internal.core.TargetPlatform;
 import org.eclipse.pde.internal.core.ischema.IMetaAttribute;
 import org.eclipse.pde.internal.core.ischema.ISchema;
 import org.eclipse.pde.internal.core.ischema.ISchemaAttribute;
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleObject.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleObject.java
index 6718feb..b8ac2b2 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleObject.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleObject.java
@@ -41,7 +41,7 @@
 		Status status =
 			new Status(
 				IStatus.ERROR,
-				PDECore.getPluginId(),
+				PDECore.PLUGIN_ID,
 				IStatus.OK,
 				message,
 				null);
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundlePluginBase.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundlePluginBase.java
index 6bf3f13..cd4e167 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundlePluginBase.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundlePluginBase.java
@@ -34,7 +34,7 @@
 import org.eclipse.pde.core.plugin.ISharedPluginModel;
 import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDEStateHelper;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ibundle.IBundle;
 import org.eclipse.pde.internal.core.ibundle.IBundleModel;
 import org.eclipse.pde.internal.core.ibundle.IBundlePluginBase;
@@ -738,7 +738,7 @@
 	}
 
 	public String getTargetVersion() {
-		return fTarget != null ? fTarget : TargetPlatform.getTargetVersionString();
+		return fTarget != null ? fTarget : InternalTargetPlatform.getTargetVersionString();
 	}
 
 	public void setTargetVersion(String target) {
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/converter/PDEPluginConverter.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/converter/PDEPluginConverter.java
index 34c8960..1c07d22 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/converter/PDEPluginConverter.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/converter/PDEPluginConverter.java
@@ -25,7 +25,7 @@
 import org.eclipse.osgi.framework.util.Headers;
 import org.eclipse.osgi.service.pluginconversion.PluginConversionException;
 import org.eclipse.pde.internal.core.ICoreConstants;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.osgi.framework.BundleException;
 
 public class PDEPluginConverter {
@@ -58,8 +58,8 @@
 					"META-INF/MANIFEST.MF").toOSString()); //$NON-NLS-1$
 			File inputFile = new File(project.getLocation().toOSString());
 			PluginConverter converter = PluginConverter.getDefault();
-			double version = TargetPlatform.getTargetVersion();
-			String versionString =  version <= 3.1 ? ICoreConstants.TARGET31 : TargetPlatform.getTargetVersionString();
+			double version = InternalTargetPlatform.getTargetVersion();
+			String versionString =  version <= 3.1 ? ICoreConstants.TARGET31 : InternalTargetPlatform.getTargetVersionString();
 			converter.convertManifest(inputFile, outputFile, false, versionString, true, null);
 			
 			Dictionary prop = getProperties(outputFile, newProps);
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureBasedExportOperation.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureBasedExportOperation.java
index 0db5d38..5711585 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureBasedExportOperation.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureBasedExportOperation.java
@@ -20,9 +20,8 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.pde.core.IModel;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
-
 public abstract class FeatureBasedExportOperation extends FeatureExportOperation {
 
 	protected String fFeatureLocation;
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureExportOperation.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureExportOperation.java
index 7bfb328..9af7edb 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureExportOperation.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/FeatureExportOperation.java
@@ -52,6 +52,7 @@
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.State;
 import org.eclipse.pde.core.IModel;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.build.IBuild;
 import org.eclipse.pde.core.build.IBuildEntry;
 import org.eclipse.pde.core.build.IBuildModel;
@@ -65,7 +66,7 @@
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PDECoreMessages;
 import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.XMLPrintHandler;
 import org.eclipse.pde.internal.core.build.WorkspaceBuildModel;
 import org.eclipse.pde.internal.core.feature.FeatureChild;
@@ -156,7 +157,7 @@
 		if (message != null && message.length() > 0) {	
 			throw new CoreException(new Status(
 					IStatus.ERROR,
-					PDECore.getPluginId(),
+					PDECore.PLUGIN_ID,
 					IStatus.ERROR,
 					message,
 					null));
@@ -467,14 +468,14 @@
 			format = config + '-' + IXMLConstants.FORMAT_ANTZIP;
 		generator.setArchivesFormat(format);
 		generator.setPDEState(getState(os, ws, arch));
-		generator.setNextId(TargetPlatform.getPDEState().getNextId());
-		generator.setStateExtraData(TargetPlatform.getBundleClasspaths(TargetPlatform.getPDEState()), TargetPlatform.getPatchMap(TargetPlatform.getPDEState()));
+		generator.setNextId(InternalTargetPlatform.getPDEState().getNextId());
+		generator.setStateExtraData(InternalTargetPlatform.getBundleClasspaths(InternalTargetPlatform.getPDEState()), InternalTargetPlatform.getPatchMap(InternalTargetPlatform.getPDEState()));
 		AbstractScriptGenerator.setForceUpdateJar(false);
 		AbstractScriptGenerator.setEmbeddedSource(fInfo.exportSource);		
 	}
 	
 	protected State getState(String os, String ws, String arch) {
-		State main = TargetPlatform.getState();
+		State main = InternalTargetPlatform.getState();
 		if (os.equals(TargetPlatform.getOS()) 
 				&& ws.equals(TargetPlatform.getWS())
 				&& arch.equals(TargetPlatform.getOSArch())) {
@@ -529,7 +530,7 @@
 	}
 
 	protected String[] getPaths() {
-		return TargetPlatform.getFeaturePaths();
+		return InternalTargetPlatform.getFeaturePaths();
 	}
 	
 	protected void cleanup(String[] config, IProgressMonitor monitor) {
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java
index 4f4edd2..251e7c8 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/exports/ProductExportOperation.java
@@ -42,13 +42,14 @@
 import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.build.BuildScriptGenerator;
 import org.eclipse.pde.internal.build.IBuildPropertiesConstants;
 import org.eclipse.pde.internal.build.IXMLConstants;
 import org.eclipse.pde.internal.core.ExternalModelManager;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.XMLPrintHandler;
 import org.eclipse.pde.internal.core.iproduct.IArgumentsInfo;
 import org.eclipse.pde.internal.core.iproduct.IConfigurationFileInfo;
@@ -300,7 +301,7 @@
             if (location != null)
             	writer.println("osgi.splashPath=" + location); //$NON-NLS-1$
             writer.println("eclipse.product=" + fProduct.getId()); //$NON-NLS-1$
-            writer.println("osgi.bundles=" + getPluginList(config, TargetPlatform.getBundleList()));  //$NON-NLS-1$
+            writer.println("osgi.bundles=" + getPluginList(config, InternalTargetPlatform.getBundleList()));  //$NON-NLS-1$
             writer.println("osgi.bundles.defaultStartLevel=4"); //$NON-NLS-1$ 		
         } catch (IOException e) {
         } finally {
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/feature/FeatureObject.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/feature/FeatureObject.java
index db9b878..3440477 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/feature/FeatureObject.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/feature/FeatureObject.java
@@ -143,7 +143,7 @@
 	}
 	protected void throwCoreException(String message) throws CoreException {
 		Status status =
-			new Status(IStatus.ERROR, PDECore.getPluginId(), IStatus.OK, message, null);
+			new Status(IStatus.ERROR, PDECore.PLUGIN_ID, IStatus.OK, message, null);
 		CoreException ce = new CoreException(status);
 		ce.fillInStackTrace();
 		throw ce;
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginObject.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginObject.java
index 058ef55..cb71ac7 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginObject.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginObject.java
@@ -180,7 +180,7 @@
 		Status status =
 			new Status(
 				IStatus.ERROR,
-				PDECore.getPluginId(),
+				PDECore.PLUGIN_ID,
 				IStatus.OK,
 				message,
 				null);
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/SiteObject.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/SiteObject.java
index 4c8ddf7..0991809 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/SiteObject.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/SiteObject.java
@@ -143,7 +143,7 @@
 	}
 	protected void throwCoreException(String message) throws CoreException {
 		Status status =
-			new Status(IStatus.ERROR, PDECore.getPluginId(), IStatus.OK, message, null);
+			new Status(IStatus.ERROR, PDECore.PLUGIN_ID, IStatus.OK, message, null);
 		CoreException ce= new CoreException(status);
 		ce.fillInStackTrace();
 		throw ce;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDELabelProvider.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDELabelProvider.java
index e5360f1..e3c889b 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDELabelProvider.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDELabelProvider.java
@@ -29,7 +29,7 @@
 import org.eclipse.pde.core.plugin.IPluginModel;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.WorkspaceModelManager;
 import org.eclipse.pde.internal.core.builders.CompilerFlags;
 import org.eclipse.pde.internal.core.feature.FeatureChild;
@@ -638,7 +638,7 @@
 	}
 	
 	private Image getObjectImage(IProductPlugin obj) {
-		BundleDescription desc = TargetPlatform.getState().getBundle(obj.getId(), null);
+		BundleDescription desc = InternalTargetPlatform.getState().getBundle(obj.getId(), null);
 		if (desc != null) {
 			return desc.getHost() == null 
 				? get(PDEPluginImages.DESC_PLUGIN_OBJ)
@@ -829,7 +829,7 @@
 	}
 	
 	public Image getObjectImage(ITargetPlugin obj) {
-		BundleDescription desc = TargetPlatform.getState().getBundle(obj.getId(), null);
+		BundleDescription desc = InternalTargetPlatform.getState().getBundle(obj.getId(), null);
 		if (desc != null) {
 			return desc.getHost() == null 
 				? get(PDEPluginImages.DESC_PLUGIN_OBJ)
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BaseBuildAction.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BaseBuildAction.java
index 82f3317..6c8d28c 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BaseBuildAction.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BaseBuildAction.java
@@ -40,8 +40,8 @@
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.internal.build.IXMLConstants;
-import org.eclipse.pde.internal.core.TargetPlatform;
 import org.eclipse.pde.internal.core.exports.BuildUtilities;
 import org.eclipse.pde.internal.core.natures.PDE;
 import org.eclipse.pde.internal.ui.PDEPlugin;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildFeatureAction.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildFeatureAction.java
index 1e1e184..1e749be 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildFeatureAction.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildFeatureAction.java
@@ -21,7 +21,7 @@
 import org.eclipse.pde.internal.build.IXMLConstants;
 import org.eclipse.pde.internal.core.ClasspathHelper;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.feature.FeatureChild;
 import org.eclipse.pde.internal.core.ifeature.IFeature;
 import org.eclipse.pde.internal.core.ifeature.IFeatureChild;
@@ -55,10 +55,10 @@
 		AbstractScriptGenerator.setConfigInfo(AbstractScriptGenerator.getDefaultConfigInfos()); //This needs to be set before we set the format
 		generator.setArchivesFormat(AbstractScriptGenerator.getDefaultConfigInfos() + '-' + IXMLConstants.FORMAT_ANTZIP);
 		generator.setElements(new String[] { "feature@" + fFeatureModel.getFeature().getId() + (fFeatureModel.getFeature().getVersion() == null ? "" : ":" + fFeatureModel.getFeature().getVersion()) }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		generator.setPluginPath(TargetPlatform.getFeaturePaths());
-		generator.setPDEState(TargetPlatform.getState());
-		generator.setNextId(TargetPlatform.getPDEState().getNextId());
-		generator.setStateExtraData(TargetPlatform.getBundleClasspaths(TargetPlatform.getPDEState()), TargetPlatform.getPatchMap(TargetPlatform.getPDEState()));
+		generator.setPluginPath(InternalTargetPlatform.getFeaturePaths());
+		generator.setPDEState(InternalTargetPlatform.getState());
+		generator.setNextId(InternalTargetPlatform.getPDEState().getNextId());
+		generator.setStateExtraData(InternalTargetPlatform.getBundleClasspaths(InternalTargetPlatform.getPDEState()), InternalTargetPlatform.getPatchMap(InternalTargetPlatform.getPDEState()));
 		generator.setGenerateAssembleScript(false);
 		generator.generate();	
 	}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildPluginAction.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildPluginAction.java
index f915a14..f660a3c 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildPluginAction.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/build/BuildPluginAction.java
@@ -20,7 +20,7 @@
 import org.eclipse.pde.internal.build.BuildScriptGenerator;
 import org.eclipse.pde.internal.core.ClasspathHelper;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 
 public class BuildPluginAction extends BaseBuildAction {
 
@@ -36,9 +36,9 @@
 		generator.setWorkingDirectory(project.getLocation().toOSString());
 		String url = ClasspathHelper.getDevEntriesProperties(project.getLocation().addTrailingSeparator().toString() + "dev.properties", false); //$NON-NLS-1$
 		generator.setDevEntries(url);
-		generator.setPDEState(TargetPlatform.getState());
-		generator.setNextId(TargetPlatform.getPDEState().getNextId());
-		generator.setStateExtraData(TargetPlatform.getBundleClasspaths(TargetPlatform.getPDEState()), TargetPlatform.getPatchMap(TargetPlatform.getPDEState()));
+		generator.setPDEState(InternalTargetPlatform.getState());
+		generator.setNextId(InternalTargetPlatform.getPDEState().getNextId());
+		generator.setStateExtraData(InternalTargetPlatform.getBundleClasspaths(InternalTargetPlatform.getPDEState()), InternalTargetPlatform.getPatchMap(InternalTargetPlatform.getPDEState()));
 		generator.setBuildingOSGi(true);
 		IPluginModelBase model = PDECore.getDefault().getModelManager().findModel(project);
 		generator.setElements(new String[] { "plugin@" +model.getPluginBase().getId() }); //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java
index b9aa648..056036f 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.pde.internal.ui.correction;
 
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ibundle.IBundle;
 import org.eclipse.pde.internal.core.ibundle.IManifestHeader;
 import org.eclipse.pde.internal.core.text.bundle.Bundle;
@@ -46,9 +46,9 @@
 			Bundle bun = (Bundle)bundle;
 			IManifestHeader header = bun.getManifestHeader(Constants.BUNDLE_SYMBOLICNAME);
 			if (header instanceof BundleSymbolicNameHeader) {
-				if (fisDirective && TargetPlatform.getTargetVersion() >= 3.1)
+				if (fisDirective && InternalTargetPlatform.getTargetVersion() >= 3.1)
 					bundle.setHeader(Constants.BUNDLE_MANIFESTVERSION, "2"); //$NON-NLS-1$
-				else if (!fisDirective && TargetPlatform.getTargetVersion() < 3.1)
+				else if (!fisDirective && InternalTargetPlatform.getTargetVersion() < 3.1)
 					bundle.setHeader(Constants.BUNDLE_MANIFESTVERSION, null);
 				((BundleSymbolicNameHeader)header).setSingleton(true);
 			}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/CreateManifestOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/CreateManifestOperation.java
index 551f4ef..db4edec 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/CreateManifestOperation.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/CreateManifestOperation.java
@@ -27,7 +27,7 @@
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.ClasspathHelper;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.converter.PDEPluginConverter;
 import org.eclipse.text.edits.DeleteEdit;
 import org.eclipse.text.edits.MultiTextEdit;
@@ -55,7 +55,7 @@
 
 	private void handleConvert() throws CoreException {
 		IProject project = fModel.getUnderlyingResource().getProject();
-		String target = TargetPlatform.getTargetVersionString();
+		String target = InternalTargetPlatform.getTargetVersionString();
 		PDEPluginConverter.convertToOSGIFormat(project, target, ClasspathHelper.getDevDictionary(fModel), new NullProgressMonitor()); 		
 	}
 	
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java
index e75d2a0..d35a589 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java
@@ -54,7 +54,7 @@
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.WorkspaceModelManager;
 import org.eclipse.pde.internal.core.bundle.BundlePluginBase;
 import org.eclipse.pde.internal.core.ibundle.IBundle;
@@ -688,7 +688,7 @@
         if (id != null)
             set.add(id);
         IPluginImport[] imports = model.getPluginBase().getImports();
-        State state = TargetPlatform.getState();
+        State state = InternalTargetPlatform.getState();
         for (int i = 0; i < imports.length; i++) {
             addDependency(state, imports[i].getId(), set);
         }
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ManifestEditor.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ManifestEditor.java
index 52c28fa..b1fde1b 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ManifestEditor.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ManifestEditor.java
@@ -39,7 +39,7 @@
 import org.eclipse.pde.core.plugin.ISharedPluginModel;
 import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.build.IBuildObject;
 import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelProvider;
 import org.eclipse.pde.internal.core.plugin.WorkspaceFragmentModel;
@@ -254,7 +254,7 @@
 		
 		IPluginBase pluginBase = model.getPluginBase(true);
 		try {
-			pluginBase.setSchemaVersion(TargetPlatform.getTargetVersion() < 3.2 ? "3.0" : "3.2"); //$NON-NLS-1$ //$NON-NLS-2$
+			pluginBase.setSchemaVersion(InternalTargetPlatform.getTargetVersion() < 3.2 ? "3.0" : "3.2"); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		catch (CoreException e) {
 		}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/PluginGeneralInfoSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/PluginGeneralInfoSection.java
index 59e0436..2660aa7 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/PluginGeneralInfoSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/PluginGeneralInfoSection.java
@@ -18,7 +18,7 @@
 import org.eclipse.pde.core.plugin.IPlugin;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.ICoreConstants;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.bundle.BundlePluginBase;
 import org.eclipse.pde.internal.core.ibundle.IBundle;
 import org.eclipse.pde.internal.core.ibundle.IBundleModel;
@@ -192,7 +192,7 @@
 	}
 	
 	private String getLazyStartHeaderName() {
-		if (TargetPlatform.getTargetVersion() >= 3.2
+		if (InternalTargetPlatform.getTargetVersion() >= 3.2
 				&& BundlePluginBase.getBundleManifestVersion(getBundle()) >= 2)
 			return ICoreConstants.ECLIPSE_LAZYSTART;
 		return ICoreConstants.ECLIPSE_AUTOSTART;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/IntroSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/IntroSection.java
index 08ec360..dbfff59 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/IntroSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/IntroSection.java
@@ -25,7 +25,7 @@
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.core.plugin.IPluginObject;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ibundle.IBundle;
 import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase;
 import org.eclipse.pde.internal.core.ibundle.IManifestHeader;
@@ -77,7 +77,7 @@
 		
 		Composite client = toolkit.createComposite(section);
 		GridLayout layout = new GridLayout();
-		boolean canCreateNew = TargetPlatform.getTargetVersion() >= NEW_INTRO_SUPPORT_VERSION;
+		boolean canCreateNew = InternalTargetPlatform.getTargetVersion() >= NEW_INTRO_SUPPORT_VERSION;
 		layout.numColumns = canCreateNew ? 3 : 2;
 		layout.marginHeight = 5;
 		client.setLayout(layout);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java
index 24ff2b9..76585f1 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/LauncherSection.java
@@ -18,7 +18,7 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.window.Window;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.internal.core.iproduct.ILauncherInfo;
 import org.eclipse.pde.internal.core.iproduct.IProduct;
 import org.eclipse.pde.internal.core.iproduct.IProductModel;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginSection.java
index 647e1ce..d43cb19 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginSection.java
@@ -39,7 +39,7 @@
 import org.eclipse.pde.internal.core.IPluginModelListener;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PluginModelDelta;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.iproduct.IProduct;
 import org.eclipse.pde.internal.core.iproduct.IProductModel;
 import org.eclipse.pde.internal.core.iproduct.IProductModelFactory;
@@ -285,7 +285,7 @@
 		
 		HashSet set = new HashSet();
 		for (int i = 0; i < plugins.length; i++) {
-			addDependencies(TargetPlatform.getState().getBundle(plugins[i].getId(), null), set);
+			addDependencies(InternalTargetPlatform.getState().getBundle(plugins[i].getId(), null), set);
 		}
 		
 		IProduct product = plugins[0].getProduct();
@@ -345,7 +345,7 @@
 	
 	private static BundleDescription[] getAllFragments() {
 		ArrayList list = new ArrayList();
-		BundleDescription[] bundles = TargetPlatform.getState().getBundles();
+		BundleDescription[] bundles = InternalTargetPlatform.getState().getBundles();
 		for (int i = 0; i < bundles.length; i++) {
 			if (bundles[i].getHost() != null)
 				list.add(bundles[i]);
@@ -411,7 +411,7 @@
 	private BundleDescription[] getBundles() {
 		TreeMap map = new TreeMap();
 		IProduct product = getProduct();
-		BundleDescription[] bundles = TargetPlatform.getState().getBundles();
+		BundleDescription[] bundles = InternalTargetPlatform.getState().getBundles();
 		for (int i = 0; i < bundles.length; i++) {
 			String id = bundles[i].getSymbolicName();
 			if (!product.containsPlugin(id)) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ProductInfoSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ProductInfoSection.java
index a5da6f6..e2597ab 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ProductInfoSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ProductInfoSection.java
@@ -14,7 +14,7 @@
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.pde.core.IModelChangedEvent;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.iproduct.IProduct;
 import org.eclipse.pde.internal.core.iproduct.IProductModel;
 import org.eclipse.pde.internal.ui.PDEPlugin;
@@ -117,7 +117,7 @@
 		fProductCombo = new ComboPart();
 		fProductCombo.createControl(client, toolkit, SWT.READ_ONLY);
 		fProductCombo.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fProductCombo.setItems(TargetPlatform.getProductNames());
+		fProductCombo.setItems(InternalTargetPlatform.getProductNames());
 		fProductCombo.add(""); //$NON-NLS-1$
 		fProductCombo.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
@@ -159,7 +159,7 @@
 		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.horizontalSpan = NUM_COLUMNS - 1;
 		fAppCombo.getControl().setLayoutData(gd);
-		fAppCombo.setItems(TargetPlatform.getApplicationNames());
+		fAppCombo.setItems(InternalTargetPlatform.getApplicationNames());
 		fAppCombo.add(""); //$NON-NLS-1$
 		fAppCombo.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/target/ContentSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/target/ContentSection.java
index ba61911..20f8ce8 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/target/ContentSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/target/ContentSection.java
@@ -36,7 +36,7 @@
 import org.eclipse.pde.core.IModelChangedEvent;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ifeature.IFeature;
 import org.eclipse.pde.internal.core.ifeature.IFeatureModel;
 import org.eclipse.pde.internal.core.itarget.ITarget;
@@ -463,7 +463,7 @@
 		
 		HashSet set = new HashSet();
 		for (int i = 0; i < plugins.length; i++) {
-			addDependencies(TargetPlatform.getState().getBundle(plugins[i].getId(), null), set);
+			addDependencies(InternalTargetPlatform.getState().getBundle(plugins[i].getId(), null), set);
 		}
 		
 		ITarget target = plugins[0].getTarget();
@@ -523,7 +523,7 @@
 	
 	private static BundleDescription[] getAllFragments() {
 		ArrayList list = new ArrayList();
-		BundleDescription[] bundles = TargetPlatform.getState().getBundles();
+		BundleDescription[] bundles = InternalTargetPlatform.getState().getBundles();
 		for (int i = 0; i < bundles.length; i++) {
 			if (bundles[i].getHost() != null)
 				list.add(bundles[i]);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java
index 39d40e1..132a9dc 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/AbstractPluginBlock.java
@@ -37,7 +37,7 @@
 import org.eclipse.pde.internal.core.ModelEntry;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEPluginImages;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
@@ -463,7 +463,7 @@
 			IPluginModelBase model = entry.getActiveModel();
 			if ("org.eclipse.ui.workbench.compatibility".equals(model.getPluginBase().getId())) //$NON-NLS-1$
 				continue;
-			if (model instanceof IFragmentModel && TargetPlatform.matchesCurrentEnvironment(model)) {
+			if (model instanceof IFragmentModel && InternalTargetPlatform.matchesCurrentEnvironment(model)) {
 				String id = ((IFragmentModel) model).getFragment().getPluginId();
 				if (id.equals(plugin.getId())) {
 					if (fPluginTreeViewer.getChecked(model)) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/EquinoxInitializer.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/EquinoxInitializer.java
index 414cb0f..20deff5 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/EquinoxInitializer.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/EquinoxInitializer.java
@@ -20,7 +20,7 @@
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
 import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.ui.launcher.IPDELauncherConstants;
 import org.eclipse.pde.ui.launcher.OSGiLaunchConfigurationInitializer;
 
@@ -81,7 +81,7 @@
 	private void initializeBundleState() {
 		if (fStartLevels == null)
 			fStartLevels = new HashMap();
-		Properties props = TargetPlatform.getConfigIniProperties();
+		Properties props = InternalTargetPlatform.getConfigIniProperties();
 		if (props != null) {
 			String value = (String)props.get("osgi.bundles"); //$NON-NLS-1$
 			if (value != null) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchAction.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchAction.java
index c59a56b..c0884c2 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchAction.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchAction.java
@@ -34,7 +34,7 @@
 import org.eclipse.pde.internal.core.FeatureModelManager;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ifeature.IFeature;
 import org.eclipse.pde.internal.core.ifeature.IFeatureChild;
 import org.eclipse.pde.internal.core.ifeature.IFeatureModel;
@@ -146,7 +146,7 @@
 				if (id == null || map.containsKey(id))
 					continue;
 				IPluginModelBase model = manager.findModel(id);
-				if (model != null && TargetPlatform.matchesCurrentEnvironment(model))
+				if (model != null && InternalTargetPlatform.matchesCurrentEnvironment(model))
 					map.put(id, model);				
 			}
 		}
@@ -186,7 +186,7 @@
 			if (id == null || map.containsKey(id))
 				continue;
 			IPluginModelBase model = manager.findModel(id);
-			if (model != null && TargetPlatform.matchesCurrentEnvironment(model))
+			if (model != null && InternalTargetPlatform.matchesCurrentEnvironment(model))
 				map.put(id, model);
 		}
 	}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchArgumentsHelper.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchArgumentsHelper.java
index a414f3e..56e8331 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchArgumentsHelper.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchArgumentsHelper.java
@@ -31,12 +31,12 @@
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.launching.ExecutionArguments;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.plugin.IPlugin;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.ExternalModelManager;
 import org.eclipse.pde.internal.core.ModelEntry;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
 import org.eclipse.pde.internal.core.TracingOptionsManager;
 import org.eclipse.pde.ui.launcher.IPDELauncherConstants;
 
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchConfigurationHelper.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchConfigurationHelper.java
index 5deb341..5377b8b 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchConfigurationHelper.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchConfigurationHelper.java
@@ -37,7 +37,7 @@
 import org.eclipse.pde.core.plugin.IPluginObject;
 import org.eclipse.pde.internal.core.ExternalModelManager;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.ui.launcher.IPDELauncherConstants;
 
@@ -96,7 +96,7 @@
 				properties = loadFromTemplate(getSubstitutedString(templateLoc));
 				String osgiBundles = properties.getProperty("osgi.bundles"); //$NON-NLS-1$
 				if (osgiBundles != null) {
-					properties.put("osgi.bundles", TargetPlatform.stripPathInformation(osgiBundles)); //$NON-NLS-1$
+					properties.put("osgi.bundles", InternalTargetPlatform.stripPathInformation(osgiBundles)); //$NON-NLS-1$
 				}
 			}
 		}
@@ -117,7 +117,7 @@
 		if (productID != null)
 			addSplashLocation(properties, productID, map);
 		
-		String bundleList = TargetPlatform.getBundleList();
+		String bundleList = InternalTargetPlatform.getBundleList();
 		StringBuffer buffer = new StringBuffer();
 		
 		// include only bundles that are actually in the list of plug-ins to launch
@@ -184,7 +184,7 @@
 	}
 
 	private static void addSplashLocation(Properties properties, String productID, Map map)  {
-		Properties targetConfig = TargetPlatform.getConfigIniProperties(); 
+		Properties targetConfig = InternalTargetPlatform.getConfigIniProperties(); 
 		String targetProduct = targetConfig == null ? null : targetConfig.getProperty("eclipse.product"); //$NON-NLS-1$
 		String targetSplash = targetConfig == null ? null : targetConfig.getProperty("osgi.splashPath"); //$NON-NLS-1$
 		ArrayList locations = new ArrayList();
@@ -322,12 +322,12 @@
 		if (result != null)
 			return result;
 		
-		Properties properties = TargetPlatform.getConfigIniProperties();
+		Properties properties = InternalTargetPlatform.getConfigIniProperties();
 		return properties == null ? null : properties.getProperty("eclipse.product"); //$NON-NLS-1$
 	}
 
 	public static String getDefaultApplicationName() {
-		Properties properties = TargetPlatform.getConfigIniProperties(); 
+		Properties properties = InternalTargetPlatform.getConfigIniProperties(); 
 		String appName = (properties != null) ? properties.getProperty("eclipse.application") : null; //$NON-NLS-1$
 		return (appName != null) ? appName : "org.eclipse.ui.ide.workbench"; //$NON-NLS-1$
 	}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchPluginValidator.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchPluginValidator.java
index 66c4461..4e7e94f 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchPluginValidator.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/LaunchPluginValidator.java
@@ -31,7 +31,7 @@
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PluginModelManager;
 import org.eclipse.pde.internal.core.SearchablePluginsManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.ui.launcher.IPDELauncherConstants;
 import org.eclipse.swt.widgets.Display;
 
@@ -76,10 +76,10 @@
 		}
 		
 		String version = configuration.getAttribute("pde.version", (String) null); //$NON-NLS-1$
-		boolean newApp = TargetPlatform.usesNewApplicationModel();
+		boolean newApp = InternalTargetPlatform.usesNewApplicationModel();
 		boolean upgrade = !"3.3".equals(version) && newApp; //$NON-NLS-1$
 		if (!upgrade)
-			upgrade = TargetPlatform.getTargetVersion() >= 3.2 && version == null; //$NON-NLS-1$
+			upgrade = InternalTargetPlatform.getTargetVersion() >= 3.2 && version == null; //$NON-NLS-1$
 		if (upgrade) {
 			wc.setAttribute("pde.version", newApp ? "3.3" : "3.2a"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			boolean usedefault = configuration.getAttribute(IPDELauncherConstants.USE_DEFAULT, true);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PDESourceLookupQuery.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PDESourceLookupQuery.java
index 4671c99..c696859 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PDESourceLookupQuery.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PDESourceLookupQuery.java
@@ -45,7 +45,7 @@
 import org.eclipse.pde.internal.core.ModelEntry;
 import org.eclipse.pde.internal.core.PDEClasspathContainer;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 
 public class PDESourceLookupQuery implements ISafeRunnable {
@@ -135,7 +135,7 @@
 				return result;
 			
 			// don't give up yet, search fragments attached to this host
-			State state = TargetPlatform.getState();
+			State state = InternalTargetPlatform.getState();
 			BundleDescription desc = state.getBundle(id, null);
 			if (desc != null) {
 				BundleDescription[] fragments = desc.getFragments();
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PluginValidationOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PluginValidationOperation.java
index 437a17b..bb92130 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PluginValidationOperation.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/PluginValidationOperation.java
@@ -31,9 +31,9 @@
 import org.eclipse.osgi.service.resolver.VersionConstraint;
 import org.eclipse.osgi.service.resolver.VersionRange;
 import org.eclipse.osgi.util.NLS;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.MinimalState;
-import org.eclipse.pde.internal.core.TargetPlatform;
 import org.eclipse.pde.internal.ui.PDELabelProvider;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEPluginImages;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/ProgramBlock.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/ProgramBlock.java
index 4d03837..099b77d 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/ProgramBlock.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/ProgramBlock.java
@@ -16,7 +16,7 @@
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.pde.ui.launcher.AbstractLauncherTab;
 import org.eclipse.pde.ui.launcher.IPDELauncherConstants;
@@ -73,7 +73,7 @@
 		fProductButton.addSelectionListener(fListener);
 		
 		fProductCombo = new Combo(parent, SWT.READ_ONLY|SWT.DROP_DOWN);
-		fProductCombo.setItems(TargetPlatform.getProductNames());
+		fProductCombo.setItems(InternalTargetPlatform.getProductNames());
 		fProductCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		fProductCombo.addSelectionListener(fListener);
 	}
@@ -171,7 +171,7 @@
 	}
 	
 	public void setDefaults(ILaunchConfigurationWorkingCopy config) {		
-		String product = TargetPlatform.getDefaultProduct();
+		String product = InternalTargetPlatform.getDefaultProduct();
 		if (product != null) {
 			config.setAttribute(IPDELauncherConstants.USE_PRODUCT, true);
 			config.setAttribute(IPDELauncherConstants.PRODUCT, product); 
@@ -179,7 +179,7 @@
 	}
 	
 	protected String[] getApplicationNames() {
-		return TargetPlatform.getApplicationNames();
+		return InternalTargetPlatform.getApplicationNames();
 	}
 	
 	protected String getApplicationAttribute() {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/SWTLaunchConfiguration.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/SWTLaunchConfiguration.java
index 9a6269e..7e0bad0 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/SWTLaunchConfiguration.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/SWTLaunchConfiguration.java
@@ -41,13 +41,13 @@
 import org.eclipse.jdt.launching.VMRunnerConfiguration;
 import org.eclipse.osgi.service.environment.Constants;
 import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.plugin.IFragmentModel;
 import org.eclipse.pde.core.plugin.IPluginLibrary;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.ClasspathUtilCore;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
 import org.eclipse.pde.internal.core.util.CoreUtility;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.osgi.framework.Version;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetEnvironmentTab.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetEnvironmentTab.java
index 877b15c..4a4bbdf 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetEnvironmentTab.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetEnvironmentTab.java
@@ -23,7 +23,7 @@
 import org.eclipse.jdt.launching.JavaRuntime;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.pde.internal.core.IEnvironmentVariables;
+import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.itarget.IEnvironmentInfo;
 import org.eclipse.pde.internal.core.itarget.ITarget;
@@ -42,7 +42,7 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.PlatformUI;
 
-public class TargetEnvironmentTab implements IEnvironmentVariables {
+public class TargetEnvironmentTab  {
 	private Combo fOSCombo;
 	private Combo fWSCombo;
 	private Combo fNLCombo;
@@ -67,25 +67,25 @@
 		String[] os = Platform.knownOSValues();
 		for (int i = 0; i < os.length; i++)
 			fOSChoices.add(os[i]);
-		addExtraChoices(fOSChoices, preferences.getString(OS_EXTRA));
+		addExtraChoices(fOSChoices, preferences.getString(ICoreConstants.OS_EXTRA));
 		
 		fWSChoices = new TreeSet();
 		String[] ws = Platform.knownWSValues();
 		for (int i = 0; i < ws.length; i++)
 			fWSChoices.add(ws[i]);
-		addExtraChoices(fWSChoices, preferences.getString(WS_EXTRA));
+		addExtraChoices(fWSChoices, preferences.getString(ICoreConstants.WS_EXTRA));
 		
 		fArchChoices = new TreeSet();
 		String[] arch = Platform.knownOSArchValues();
 		for (int i = 0; i < arch.length; i++)
 			fArchChoices.add(arch[i]);
-		addExtraChoices(fArchChoices, preferences.getString(ARCH_EXTRA));
+		addExtraChoices(fArchChoices, preferences.getString(ICoreConstants.ARCH_EXTRA));
 		
 		fNLChoices = new TreeSet();
 		if (LOCALES_INITIALIZED) {
 			initializeAllLocales();
 		} else {
-			fNLChoices.add(expandLocaleName(preferences.getString(NL)));
+			fNLChoices.add(expandLocaleName(preferences.getString(ICoreConstants.NL)));
 		}
 	}
 	
@@ -113,7 +113,7 @@
 		String[] nl = getLocales();
 		for (int i = 0; i < nl.length; i++)
 			fNLChoices.add(nl[i]);
-		addExtraChoices(fNLChoices, preferences.getString(NL_EXTRA));	
+		addExtraChoices(fNLChoices, preferences.getString(ICoreConstants.NL_EXTRA));	
 	}
 	
 	private void addExtraChoices(Set set, String preference) {
@@ -202,10 +202,10 @@
 		fNLCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		fNLCombo.setItems((String[])fNLChoices.toArray(new String[fNLChoices.size()]));
 				
-		fOSCombo.setText(preferences.getString(OS));
-		fWSCombo.setText(preferences.getString(WS));
-		fNLCombo.setText(expandLocaleName(preferences.getString(NL)));
-		fArchCombo.setText(preferences.getString(ARCH));		
+		fOSCombo.setText(preferences.getString(ICoreConstants.OS));
+		fWSCombo.setText(preferences.getString(ICoreConstants.WS));
+		fNLCombo.setText(expandLocaleName(preferences.getString(ICoreConstants.NL)));
+		fArchCombo.setText(preferences.getString(ICoreConstants.ARCH));		
 	}
 	
 	protected void loadTargetProfile(ITarget target) {
@@ -256,10 +256,10 @@
 	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
 	 */
 	protected void performDefaults() {
-		fOSCombo.setText(preferences.getDefaultString(OS));
-		fWSCombo.setText(preferences.getDefaultString(WS));
-		fNLCombo.setText(expandLocaleName(preferences.getDefaultString(NL)));
-		fArchCombo.setText(preferences.getDefaultString(ARCH));
+		fOSCombo.setText(preferences.getDefaultString(ICoreConstants.OS));
+		fWSCombo.setText(preferences.getDefaultString(ICoreConstants.WS));
+		fNLCombo.setText(expandLocaleName(preferences.getDefaultString(ICoreConstants.NL)));
+		fArchCombo.setText(preferences.getDefaultString(ICoreConstants.ARCH));
 		fJRECombo.setText(VMHelper.getDefaultVMInstallName());
 	}
 
@@ -284,45 +284,45 @@
 		String os = fOSCombo.getText().trim();
 		if (os.length() > 0) {
 			if (!fOSChoices.contains(os)) {
-				String value = preferences.getString(OS_EXTRA);
+				String value = preferences.getString(ICoreConstants.OS_EXTRA);
 				value = (value.length() > 0) ? value + "," + os : os; //$NON-NLS-1$
-				preferences.setValue(OS_EXTRA, value);
+				preferences.setValue(ICoreConstants.OS_EXTRA, value);
 			}
-			preferences.setValue(OS, os);
+			preferences.setValue(ICoreConstants.OS, os);
 		}
 		
 		String ws = fWSCombo.getText().trim();
 		if (ws.length() > 0) {
 			if (!fWSChoices.contains(ws)) {
-				String value = preferences.getString(WS_EXTRA);
+				String value = preferences.getString(ICoreConstants.WS_EXTRA);
 				value = (value.length() > 0) ? value + "," + ws : ws; //$NON-NLS-1$
-				preferences.setValue(WS_EXTRA, value);
+				preferences.setValue(ICoreConstants.WS_EXTRA, value);
 			}
-			preferences.setValue(WS, ws);
+			preferences.setValue(ICoreConstants.WS, ws);
 		}
 		
 		String arch = fArchCombo.getText().trim();
 		if (arch.length() > 0) {
 			if (!fArchChoices.contains(arch)) {
-				String value = preferences.getString(ARCH_EXTRA);
+				String value = preferences.getString(ICoreConstants.ARCH_EXTRA);
 				value = (value.length() > 0) ? value + "," + arch : arch; //$NON-NLS-1$
-				preferences.setValue(ARCH_EXTRA, value);
+				preferences.setValue(ICoreConstants.ARCH_EXTRA, value);
 			}
-			preferences.setValue(ARCH, arch);
+			preferences.setValue(ICoreConstants.ARCH, arch);
 		}
 		
 		String locale = fNLCombo.getText().trim();
 		if (locale.length() > 0) {
 			if (!fNLChoices.contains(locale)) {
-				String value = preferences.getString(NL_EXTRA);
+				String value = preferences.getString(ICoreConstants.NL_EXTRA);
 				value = (value.length() > 0) ? value + "," + locale : locale; //$NON-NLS-1$
-				preferences.setValue(NL_EXTRA, value);
+				preferences.setValue(ICoreConstants.NL_EXTRA, value);
 			}			
 			int dash = locale.indexOf("-"); //$NON-NLS-1$
 			if (dash != -1)
 				locale = locale.substring(0, dash);
 			locale = locale.trim();
-			preferences.setValue(NL, locale);
+			preferences.setValue(ICoreConstants.NL, locale);
 		}
 		PDECore.getDefault().savePluginPreferences();
 	}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetPluginsTab.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetPluginsTab.java
index 4d6038b..7ae9d18 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetPluginsTab.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/TargetPluginsTab.java
@@ -55,7 +55,7 @@
 import org.eclipse.pde.internal.core.PDEState;
 import org.eclipse.pde.internal.core.PluginPathFinder;
 import org.eclipse.pde.internal.core.DependencyManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ifeature.IFeature;
 import org.eclipse.pde.internal.core.ifeature.IFeatureChild;
 import org.eclipse.pde.internal.core.ifeature.IFeatureModel;
@@ -856,7 +856,7 @@
 	}
 	
 	protected PDEState getCurrentState() {
-		return (fCurrentState != null) ? fCurrentState : TargetPlatform.getPDEState();
+		return (fCurrentState != null) ? fCurrentState : InternalTargetPlatform.getPDEState();
 	}
 	
 	protected void handleSwitchView() {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/cheatsheet/RegisterCSOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/cheatsheet/RegisterCSOperation.java
index 446638b..0c91f1a 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/cheatsheet/RegisterCSOperation.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/cheatsheet/RegisterCSOperation.java
@@ -31,7 +31,7 @@
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.core.plugin.IPluginObject;
 import org.eclipse.pde.internal.core.ClasspathUtilCore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.build.BuildObject;
 import org.eclipse.pde.internal.core.build.WorkspaceBuildModel;
 import org.eclipse.pde.internal.core.ibundle.IBundle;
@@ -384,7 +384,7 @@
 		
 		IPluginBase base = model.getPluginBase();
 		// Set schema version
-		double targetVersion = TargetPlatform.getTargetVersion();
+		double targetVersion = InternalTargetPlatform.getTargetVersion();
 		String version = null;
 		if (targetVersion < 3.2) {
 			version = IPDECoreConstants.ECLIPSE_VERSION_3_0;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java
index a42149e..5c8d9e9 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java
@@ -12,7 +12,7 @@
 
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.exports.FeatureExportOperation;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.pde.internal.ui.util.SWTUtil;
@@ -159,7 +159,7 @@
 	protected boolean getInitialJarButtonSelection(IDialogSettings settings){
 		String selected = settings.get(S_JAR_FORMAT);
 		return selected == null
-					? TargetPlatform.getTargetVersion() >= 3.1
+					? InternalTargetPlatform.getTargetVersion() >= 3.1
 					: "true".equals(selected); //$NON-NLS-1$
 	}
 	
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ProductExportWizard.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ProductExportWizard.java
index 535380a..c85f185 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ProductExportWizard.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ProductExportWizard.java
@@ -21,7 +21,7 @@
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.pde.internal.core.FeatureModelManager;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.exports.FeatureExportInfo;
 import org.eclipse.pde.internal.core.ifeature.IFeatureModel;
 import org.eclipse.pde.internal.core.iproduct.IProductFeature;
@@ -99,7 +99,7 @@
 
 	private BundleDescription[] getPluginModels() {
 		ArrayList list = new ArrayList();
-		State state = TargetPlatform.getState();
+		State state = InternalTargetPlatform.getState();
 		IProductPlugin[] plugins = fProductModel.getProduct().getPlugins();
 		for (int i = 0; i < plugins.length; i++) {
 			BundleDescription bundle = state.getBundle(plugins[i].getId(), null);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewLibraryPluginCreationPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewLibraryPluginCreationPage.java
index b635776..4c16f39 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewLibraryPluginCreationPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewLibraryPluginCreationPage.java
@@ -14,7 +14,7 @@
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.pde.internal.core.ICoreConstants;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.util.IdUtil;
 import org.eclipse.pde.internal.core.util.VersionUtil;
 import org.eclipse.pde.internal.ui.IHelpContextIds;
@@ -123,7 +123,7 @@
 		
 		fTargetCombo = new Combo(group, SWT.READ_ONLY|SWT.SINGLE);
 		fTargetCombo.setItems(new String[] {ICoreConstants.TARGET33, ICoreConstants.TARGET32, ICoreConstants.TARGET31, ICoreConstants.TARGET30});
-		fTargetCombo.setText(TargetPlatform.getTargetVersionString());
+		fTargetCombo.setText(InternalTargetPlatform.getTargetVersionString());
 		
 	    fOSGIButton = createButton(group, SWT.RADIO, 1, 30);
     	fOSGIButton.setText(PDEUIMessages.NewProjectCreationPage_pPureOSGi); 	   
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewProjectCreationPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewProjectCreationPage.java
index dda36e1..a87fad7 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewProjectCreationPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/NewProjectCreationPage.java
@@ -20,7 +20,7 @@
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.IHelpContextIds;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.swt.SWT;
@@ -136,7 +136,7 @@
 		fTargetCombo = new Combo(group, SWT.READ_ONLY|SWT.SINGLE);
 		fTargetCombo.setItems(new String[] {ICoreConstants.TARGET33, ICoreConstants.TARGET32, ICoreConstants.TARGET31, ICoreConstants.TARGET30});
 		if (PDECore.getDefault().areModelsInitialized())
-			fTargetCombo.setText(TargetPlatform.getTargetVersionString());
+			fTargetCombo.setText(InternalTargetPlatform.getTargetVersionString());
 		else
 			fTargetCombo.setText(ICoreConstants.TARGET32);
 		
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitionOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitionOperation.java
index 0c17258..9f60200 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitionOperation.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitionOperation.java
@@ -29,7 +29,7 @@
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.core.plugin.IPluginObject;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.iproduct.IAboutInfo;
 import org.eclipse.pde.internal.core.iproduct.IProduct;
 import org.eclipse.pde.internal.core.iproduct.ISplashInfo;
@@ -75,7 +75,7 @@
 	private void createNewFile(IFile file) throws CoreException {
 		WorkspacePluginModelBase model = (WorkspacePluginModelBase)getModel(file);
 		IPluginBase base = model.getPluginBase();
-		base.setSchemaVersion(TargetPlatform.getTargetVersion() < 3.2 ? "3.0" : "3.2"); //$NON-NLS-1$ //$NON-NLS-2$
+		base.setSchemaVersion(InternalTargetPlatform.getTargetVersion() < 3.2 ? "3.0" : "3.2"); //$NON-NLS-1$ //$NON-NLS-2$
 		base.add(createExtension(model));
 		model.save();
 	}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitonWizardPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitonWizardPage.java
index 1272b8d..c434711 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitonWizardPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductDefinitonWizardPage.java
@@ -20,7 +20,7 @@
 import org.eclipse.pde.core.plugin.IPluginExtensionPoint;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.iproduct.IProduct;
 import org.eclipse.pde.internal.ui.IHelpContextIds;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
@@ -169,7 +169,7 @@
 		
 		fApplicationCombo = new Combo(group, SWT.SINGLE|SWT.READ_ONLY);
 		fApplicationCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fApplicationCombo.setItems(TargetPlatform.getApplicationNames());
+		fApplicationCombo.setItems(InternalTargetPlatform.getApplicationNames());
 		if (fApplicationCombo.getItemCount() > 0)
 			fApplicationCombo.setText(fApplicationCombo.getItem(0));	
 	}
@@ -249,7 +249,7 @@
 	
 	private Set getProductNameSet() {
 		if (fProductSet == null)
-			fProductSet = TargetPlatform.getProductNameSet();
+			fProductSet = InternalTargetPlatform.getProductNameSet();
 		return fProductSet;
 	}
 	
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductFileWizadPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductFileWizadPage.java
index 43b591d..2759e9f 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductFileWizadPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductFileWizadPage.java
@@ -28,7 +28,7 @@
 import org.eclipse.pde.core.plugin.IPluginExtension;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.IHelpContextIds;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
@@ -102,7 +102,7 @@
 		
 		fProductCombo = new Combo(fGroup, SWT.SINGLE|SWT.READ_ONLY);
 		fProductCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fProductCombo.setItems(TargetPlatform.getProductNames());
+		fProductCombo.setItems(InternalTargetPlatform.getProductNames());
 		
 		fLaunchConfigButton = new Button(fGroup, SWT.RADIO);
 		fLaunchConfigButton.setText(PDEUIMessages.ProductFileWizadPage_existingLaunchConfig); 
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java
index 49f78f8..83dcd54 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/product/ProductIntroOperation.java
@@ -38,7 +38,7 @@
 import org.eclipse.pde.core.plugin.IPluginExtension;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.iproduct.IProduct;
 import org.eclipse.pde.internal.core.plugin.WorkspacePluginModelBase;
 import org.eclipse.pde.internal.ui.PDEPlugin;
@@ -86,7 +86,7 @@
 	private void createNewFile(IFile file) throws CoreException {
 		WorkspacePluginModelBase model = (WorkspacePluginModelBase) getModel(file);
 		IPluginBase base = model.getPluginBase();
-		base.setSchemaVersion(TargetPlatform.getTargetVersion() < 3.2 ? "3.0" : "3.2"); //$NON-NLS-1$ //$NON-NLS-2$
+		base.setSchemaVersion(InternalTargetPlatform.getTargetVersion() < 3.2 ? "3.0" : "3.2"); //$NON-NLS-1$ //$NON-NLS-2$
 		base.add(createIntroExtension(model));
 		base.add(createIntroConfigExtension(model));
 		model.save();
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionFromPlatformOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionFromPlatformOperation.java
index 9c55d42..7b122a4 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionFromPlatformOperation.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionFromPlatformOperation.java
@@ -17,7 +17,6 @@
 import org.eclipse.core.runtime.Preferences;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.ICoreConstants;
-import org.eclipse.pde.internal.core.IEnvironmentVariables;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.itarget.IAdditionalLocation;
 import org.eclipse.pde.internal.core.itarget.IArgumentsInfo;
@@ -64,10 +63,10 @@
 	
 	protected void initializeEnvironmentInfo(Preferences preferences, ITarget target, ITargetModelFactory factory) {
 		IEnvironmentInfo info = factory.createEnvironment();
-		info.setOS(preferences.getString(IEnvironmentVariables.OS));
-		info.setWS(preferences.getString(IEnvironmentVariables.WS));
-		info.setNL(preferences.getString(IEnvironmentVariables.NL));
-		info.setArch(preferences.getString(IEnvironmentVariables.ARCH));
+		info.setOS(preferences.getString(ICoreConstants.OS));
+		info.setWS(preferences.getString(ICoreConstants.WS));
+		info.setNL(preferences.getString(ICoreConstants.NL));
+		info.setArch(preferences.getString(ICoreConstants.ARCH));
 		target.setEnvironment(info);
 	}
 	
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertedProjectsPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertedProjectsPage.java
index 37d6bc4..db6d94e 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertedProjectsPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertedProjectsPage.java
@@ -37,7 +37,7 @@
 import org.eclipse.pde.core.plugin.IPluginBase;
 import org.eclipse.pde.core.plugin.IPluginLibrary;
 import org.eclipse.pde.core.plugin.IPluginModelFactory;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.WorkspaceModelManager;
 import org.eclipse.pde.internal.core.build.WorkspaceBuildModel;
 import org.eclipse.pde.internal.core.bundle.WorkspaceBundlePluginModel;
@@ -169,7 +169,7 @@
 			library.setExported(true);
 			base.add(library);
 		}
-		if (TargetPlatform.getTargetVersion() >= 3.1)
+		if (InternalTargetPlatform.getTargetVersion() >= 3.1)
 			model.getBundleModel().getBundle().setHeader(Constants.BUNDLE_MANIFESTVERSION, "2"); //$NON-NLS-1$
 		model.save();
 		monitor.done();
@@ -177,7 +177,7 @@
 	}
 
 	private boolean isOldTarget() {
-		return TargetPlatform.getTargetVersion() < 3.1;
+		return InternalTargetPlatform.getTargetVersion() < 3.1;
 	}
 	
 	public boolean finish() {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/OrganizeManifest.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/OrganizeManifest.java
index 8d67ac8..0e3316b 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/OrganizeManifest.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/OrganizeManifest.java
@@ -47,7 +47,7 @@
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PDEManager;
 import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ibundle.IBundle;
 import org.eclipse.pde.internal.core.ibundle.IBundleModel;
 import org.eclipse.pde.internal.core.ibundle.IManifestHeader;
@@ -206,7 +206,7 @@
 	}
 	
 	private static final Set getAvailableExportedPackages() {
-		State state = TargetPlatform.getState();
+		State state = InternalTargetPlatform.getState();
 		ExportPackageDescription[] packages = state.getExportedPackages();
 		Set set = new HashSet();
 		for (int i = 0; i < packages.length; i++) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfiguration.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfiguration.java
index 7d202b6..39ade2b 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfiguration.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfiguration.java
@@ -30,7 +30,7 @@
 import org.eclipse.jdt.launching.IVMInstall;
 import org.eclipse.jdt.launching.IVMRunner;
 import org.eclipse.jdt.launching.VMRunnerConfiguration;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.pde.internal.ui.launcher.LaunchArgumentsHelper;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfigurationTabGroup.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfigurationTabGroup.java
index d5ff7c4..46cf226 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfigurationTabGroup.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/AbstractPDELaunchConfigurationTabGroup.java
@@ -19,7 +19,7 @@
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
 import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.launcher.LaunchPluginValidator;
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.widgets.Display;
@@ -111,9 +111,9 @@
 	 */
 	public void setDefaults(ILaunchConfigurationWorkingCopy configuration) {
 		super.setDefaults(configuration);
-		if (TargetPlatform.usesNewApplicationModel())
+		if (InternalTargetPlatform.usesNewApplicationModel())
 			configuration.setAttribute("pde.version", "3.3"); //$NON-NLS-1$ //$NON-NLS-2$
-		else if (TargetPlatform.getTargetVersion() >= 3.2)
+		else if (InternalTargetPlatform.getTargetVersion() >= 3.2)
 			configuration.setAttribute("pde.version", "3.2a"); //$NON-NLS-1$ //$NON-NLS-2$
 
 		configuration.setAttribute(
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseApplicationLaunchConfiguration.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseApplicationLaunchConfiguration.java
index f1af836..1656e7b 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseApplicationLaunchConfiguration.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseApplicationLaunchConfiguration.java
@@ -21,10 +21,11 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.internal.core.ClasspathHelper;
 import org.eclipse.pde.internal.core.ExternalModelManager;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
 import org.eclipse.pde.internal.core.util.CoreUtility;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
@@ -92,7 +93,7 @@
 			Properties prop = LaunchConfigurationHelper.createConfigIniFile(configuration,
 					productID, pluginMap, getConfigDir(configuration));
 			showSplash = prop.containsKey("osgi.splashPath") || prop.containsKey("splashLocation"); //$NON-NLS-1$ //$NON-NLS-2$
-			TargetPlatform.createPlatformConfigurationArea(
+			InternalTargetPlatform.createPlatformConfigurationArea(
 					pluginMap,
 					getConfigDir(configuration),
 					LaunchConfigurationHelper.getContributingPlugin(productID));
@@ -106,7 +107,7 @@
  
     		// necessary for PDE to know how to load plugins when target platform = host platform
     		// see PluginPathFinder.getPluginPaths()
-    		if (pluginMap.containsKey(PDECore.getPluginId()))
+    		if (pluginMap.containsKey(PDECore.PLUGIN_ID))
     			programArgs.add("-pdelaunch"); //$NON-NLS-1$	
 		}
 		
@@ -116,7 +117,7 @@
 		}
 		
 		if (!programArgs.contains("-nosplash") && showSplash) { //$NON-NLS-1$
-			if (TargetPlatform.getTargetVersion() >= 3.1) {
+			if (InternalTargetPlatform.getTargetVersion() >= 3.1) {
 				programArgs.add(0, "-launcher");  //$NON-NLS-1$
 				
 				IPath path = null;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseLaunchShortcut.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseLaunchShortcut.java
index 4e47682..30f3b69 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseLaunchShortcut.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/EclipseLaunchShortcut.java
@@ -34,7 +34,7 @@
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PluginModelManager;
 import org.eclipse.pde.internal.core.DependencyManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.PDEPlugin;
 import org.eclipse.pde.internal.ui.launcher.ApplicationSelectionDialog;
 import org.eclipse.pde.internal.ui.launcher.LaunchArgumentsHelper;
@@ -128,7 +128,7 @@
 
 	private String getProduct(String appName) {
 		if (appName == null)
-			return TargetPlatform.getDefaultProduct();
+			return InternalTargetPlatform.getDefaultProduct();
 		if (fModel != null && appName != null) {
 			IPluginExtension[] extensions = fModel.getPluginBase().getExtensions();
 			for (int i = 0; i < extensions.length; i++) {
@@ -192,9 +192,9 @@
 	 * @since 3.3
 	 */
 	protected void initializeConfiguration(ILaunchConfigurationWorkingCopy wc) {
-		if (TargetPlatform.usesNewApplicationModel())
+		if (InternalTargetPlatform.usesNewApplicationModel())
 			wc.setAttribute("pde.version", "3.3"); //$NON-NLS-1$ //$NON-NLS-2$
-		else if (TargetPlatform.getTargetVersion() >= 3.2)
+		else if (InternalTargetPlatform.getTargetVersion() >= 3.2)
 			wc.setAttribute("pde.version", "3.2a"); //$NON-NLS-1$ //$NON-NLS-2$
 		wc.setAttribute(IPDELauncherConstants.LOCATION, LaunchArgumentsHelper.getDefaultWorkspaceLocation(wc.getName())); //$NON-NLS-1$
 		initializeProgramArguments(wc);
@@ -237,7 +237,7 @@
 			wc.setAttribute(IPDELauncherConstants.SELECTED_WORKSPACE_PLUGINS, wsplugins.toString());
 			wc.setAttribute(IPDELauncherConstants.SELECTED_TARGET_PLUGINS, explugins.toString());
 		} else {
-			String defaultProduct = TargetPlatform.getDefaultProduct();
+			String defaultProduct = InternalTargetPlatform.getDefaultProduct();
 			if (defaultProduct != null) {
 				wc.setAttribute(IPDELauncherConstants.USE_DEFAULT, true);
 				wc.setAttribute(IPDELauncherConstants.USE_PRODUCT, true);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitLaunchConfigurationDelegate.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitLaunchConfigurationDelegate.java
index 2f9a3b0..e200ddf 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitLaunchConfigurationDelegate.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitLaunchConfigurationDelegate.java
@@ -39,12 +39,13 @@
 import org.eclipse.jdt.launching.SocketUtil;
 import org.eclipse.jdt.launching.VMRunnerConfiguration;
 import org.eclipse.osgi.util.NLS;
+import org.eclipse.pde.core.TargetPlatform;
 import org.eclipse.pde.core.plugin.IFragmentModel;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.internal.core.ClasspathHelper;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.PDECore;
 import org.eclipse.pde.internal.core.PluginModelManager;
-import org.eclipse.pde.internal.core.TargetPlatform;
 import org.eclipse.pde.internal.core.util.CoreUtility;
 import org.eclipse.pde.internal.ui.IPDEUIConstants;
 import org.eclipse.pde.internal.ui.PDEPlugin;
@@ -242,7 +243,7 @@
 		String productID = LaunchConfigurationHelper.getProductID(configuration);
 		LaunchConfigurationHelper.createConfigIniFile(configuration,
 				productID, fPluginMap, getConfigurationDirectory(configuration));
-		TargetPlatform.createPlatformConfigurationArea(
+		InternalTargetPlatform.createPlatformConfigurationArea(
 				fPluginMap,
 				getConfigurationDirectory(configuration),
 				LaunchConfigurationHelper.getContributingPlugin(productID));
@@ -256,7 +257,7 @@
 		
 		// necessary for PDE to know how to load plugins when target platform = host platform
 		// see PluginPathFinder.getPluginPaths()
-		if (fPluginMap.containsKey(PDECore.getPluginId()))
+		if (fPluginMap.containsKey(PDECore.PLUGIN_ID))
 			programArgs.add("-pdelaunch"); //$NON-NLS-1$	
 
 		// Create the .options file if tracing is turned on
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitWorkbenchLaunchShortcut.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitWorkbenchLaunchShortcut.java
index d2cdac0..59f1990 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitWorkbenchLaunchShortcut.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/launcher/JUnitWorkbenchLaunchShortcut.java
@@ -18,7 +18,7 @@
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
 import org.eclipse.pde.internal.core.ICoreConstants;
 import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.ui.launcher.LaunchArgumentsHelper;
 import org.eclipse.pde.internal.ui.launcher.LauncherUtils;
 
@@ -43,9 +43,9 @@
 	 */
 	protected ILaunchConfigurationWorkingCopy createLaunchConfiguration(IJavaElement element) throws CoreException {
 		ILaunchConfigurationWorkingCopy configuration = super.createLaunchConfiguration(element);
-		if (TargetPlatform.usesNewApplicationModel())
+		if (InternalTargetPlatform.usesNewApplicationModel())
 			configuration.setAttribute("pde.version", "3.3"); //$NON-NLS-1$ //$NON-NLS-2$
-		else if (TargetPlatform.getTargetVersion() >= 3.2)
+		else if (InternalTargetPlatform.getTargetVersion() >= 3.2)
 			configuration.setAttribute("pde.version", "3.2a"); //$NON-NLS-1$ //$NON-NLS-2$
 		configuration.setAttribute(IPDELauncherConstants.LOCATION, LaunchArgumentsHelper.getDefaultJUnitWorkspaceLocation());
 		configuration.setAttribute(IPDELauncherConstants.DOCLEAR, true);
@@ -53,7 +53,7 @@
 
 		// Program to launch
 		if (LauncherUtils.requiresUI(configuration)) {
-			String product = TargetPlatform.getDefaultProduct();
+			String product = InternalTargetPlatform.getDefaultProduct();
 			if (product != null) {
 				configuration.setAttribute(IPDELauncherConstants.USE_PRODUCT, true);
 				configuration.setAttribute(IPDELauncherConstants.PRODUCT, product);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/templates/AbstractTemplateSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/templates/AbstractTemplateSection.java
index 93e8ece..7e0b38d 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/templates/AbstractTemplateSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/ui/templates/AbstractTemplateSection.java
@@ -47,7 +47,7 @@
 import org.eclipse.pde.core.plugin.IPluginModel;
 import org.eclipse.pde.core.plugin.IPluginModelBase;
 import org.eclipse.pde.core.plugin.IPluginReference;
-import org.eclipse.pde.internal.core.TargetPlatform;
+import org.eclipse.pde.internal.core.InternalTargetPlatform;
 import org.eclipse.pde.internal.core.ibundle.IBundlePluginBase;
 import org.eclipse.pde.internal.ui.PDEUIMessages;
 import org.eclipse.pde.internal.ui.wizards.templates.ControlStack;
@@ -736,7 +736,7 @@
 			    return Double.parseDouble(((IBundlePluginBase)plugin).getTargetVersion());
 		} catch (NumberFormatException e) {
 		}
-       return TargetPlatform.getTargetVersion();
+       return InternalTargetPlatform.getTargetVersion();
 	}
 
 }