This commit was manufactured by cvs2svn to create branch 'e_3_2_m_1_0'.

Sprout from master 2006-12-23 00:17:33 UTC mkersten 'Version update'
Cherrypick from master 2006-04-07 22:03:23 UTC mkersten 'Progress on: clear context broken when task active?':
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitTabGroup.java
Cherrypick from e_3_2 2006-12-23 00:40:39 UTC mkersten 'Version update':
    org.eclipse.mylyn.ide-feature/feature.xml
    org.eclipse.mylyn.java.ui/.settings/org.eclipse.mylar.tasklist.prefs
    org.eclipse.mylyn.java.ui/META-INF/MANIFEST.MF
    org.eclipse.mylyn.java.ui/icons/elcl16/templateprop_co.gif
    org.eclipse.mylyn.java.ui/plugin.xml
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/JavaDebugStructureBridge.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/JavaStructureBridge.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/MylarJavaPlugin.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/TypeHistoryManager.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/search/AbstractJavaRelationProvider.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/search/JavaActiveSearchResultUpdater.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/JavaUiBridge.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/JavaUiUtil.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/LandmarkMarkerManager.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/actions/FilterMembersAction.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/actions/FocusBrowsingPerspectiveAction.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/actions/FocusDebugViewAction.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/actions/FocusPackageExplorerAction.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/editor/ActiveFoldingListener.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/editor/MylarJavaNoTypeProposalComputer.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/editor/MylarJavaProposalProcessor.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/editor/MylarJavaTypeProposalComputer.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarContextTestUtil.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitLaunchConfiguration.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitMainTab.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitLaunchConfiguration.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitTabGroup.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/views/ActiveHierarchyView.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/views/MylarPerspectiveFactory.java
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/wizards/MylarPreferenceWizardPage.java
    org.eclipse.mylyn.team.ui/plugin.xml
Delete:
    org.eclipse.mylyn.ide-feature/.settings/org.eclipse.mylar.tasklist.prefs
    org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/JUnitLaunchConfigurationDelegateCOPY.java
    org.eclipse.mylyn.team.ui/src/org/eclipse/mylyn/internal/team/ui/actions/ApplyPatchAction.java
diff --git a/org.eclipse.mylyn.ide-feature/.settings/org.eclipse.mylar.tasklist.prefs b/org.eclipse.mylyn.ide-feature/.settings/org.eclipse.mylar.tasklist.prefs
deleted file mode 100644
index 9c2a206..0000000
--- a/org.eclipse.mylyn.ide-feature/.settings/org.eclipse.mylar.tasklist.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Oct 20 16:44:42 PDT 2006
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.ide-feature/feature.xml b/org.eclipse.mylyn.ide-feature/feature.xml
index a07bca3..8c9b9f4 100644
--- a/org.eclipse.mylyn.ide-feature/feature.xml
+++ b/org.eclipse.mylyn.ide-feature/feature.xml
@@ -214,7 +214,7 @@
    </license>
 
    <url>
-      <update label="Mylar for Eclipse 3.3" url="http://download.eclipse.org/technology/mylar/update-site/e3.3"/>
+      <update label="Mylar for Eclipse 3.2" url="http://download.eclipse.org/technology/mylar/update-site/e3.2"/>
    </url>
 
    <requires>
@@ -240,27 +240,19 @@
       <import plugin="org.eclipse.pde.ui"/>
       <import plugin="org.eclipse.pde.core"/>
       <import plugin="org.eclipse.ui.ide"/>
-      <import plugin="org.eclipse.mylar.context.core" version="1.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.mylar.ide"/>
-      <import plugin="org.eclipse.mylar.tasks.ui"/>
-      <import plugin="org.eclipse.mylar.context.ui"/>
       <import plugin="org.eclipse.team.ui"/>
       <import plugin="org.eclipse.team.cvs.core"/>
       <import plugin="org.eclipse.team.core"/>
       <import plugin="org.eclipse.ui.forms"/>
-      <import plugin="org.eclipse.mylar.monitor"/>
-      <import plugin="org.eclipse.mylar.resources"/>
       <import plugin="org.eclipse.jdt.debug"/>
       <import plugin="org.eclipse.ui.navigator"/>
       <import plugin="org.eclipse.ant.ui"/>
       <import plugin="org.eclipse.ui.navigator.resources"/>
       <import plugin="org.eclipse.pde.runtime"/>
       <import plugin="org.eclipse.compare"/>
-      <import plugin="org.eclipse.mylar.tasks.core"/>
       <import plugin="org.eclipse.jface"/>
       <import plugin="org.eclipse.ui.workbench"/>
-      <import feature="org.eclipse.mylar_feature" version="1.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.mylar.doc"/>
+      <import feature="org.eclipse.mylar_feature" version="1.0.1" match="greaterOrEqual"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/JavaStructureBridge.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/JavaStructureBridge.java
index d4ee56b..7ea3fb1 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/JavaStructureBridge.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/JavaStructureBridge.java
@@ -38,13 +38,12 @@
 import org.eclipse.jdt.internal.core.JarEntryFile;
 import org.eclipse.jdt.internal.core.JarPackageFragmentRoot;
 import org.eclipse.jdt.internal.ui.packageview.ClassPathContainer;
-import org.eclipse.jdt.internal.ui.packageview.PackageFragmentRootContainer;
 import org.eclipse.jdt.internal.ui.util.ExceptionHandler;
-import org.eclipse.mylar.context.core.AbstractContextStructureBridge;
 import org.eclipse.mylar.context.core.AbstractRelationProvider;
 import org.eclipse.mylar.context.core.ContextCorePlugin;
 import org.eclipse.mylar.context.core.IDegreeOfSeparation;
 import org.eclipse.mylar.context.core.IMylarElement;
+import org.eclipse.mylar.context.core.AbstractContextStructureBridge;
 import org.eclipse.mylar.context.core.MylarStatusHandler;
 import org.eclipse.mylar.internal.context.core.DegreeOfSeparation;
 import org.eclipse.mylar.internal.java.search.JUnitReferencesProvider;
@@ -215,7 +214,7 @@
 			return adapter instanceof IJavaElement;
 		}
 
-		boolean accepts = object instanceof IJavaElement || object instanceof PackageFragmentRootContainer
+		boolean accepts = object instanceof IJavaElement || object instanceof ClassPathContainer
 				|| object instanceof ClassPathContainer.RequiredProjectWrapper || object instanceof JarEntryFile
 				|| object instanceof IPackageFragment || object instanceof WorkingSet 
 				|| isWtpClass(object);
@@ -231,11 +230,11 @@
 	public boolean canFilter(Object object) {
 		if (object instanceof ClassPathContainer.RequiredProjectWrapper) {
 			return true;
-		} else if (object instanceof PackageFragmentRootContainer) { 
-			// since not in model, check if it contains anything interesting
-			PackageFragmentRootContainer container = (PackageFragmentRootContainer) object;
+		} else if (object instanceof ClassPathContainer) { 
+			// HACK: check if it has anything interesting
+			ClassPathContainer container = (ClassPathContainer) object;
 
-			Object[] children = container.getChildren();
+			Object[] children = container.getChildren(container);
 			for (int i = 0; i < children.length; i++) {
 				if (children[i] instanceof JarPackageFragmentRoot) {
 					JarPackageFragmentRoot element = (JarPackageFragmentRoot) children[i];
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/TypeHistoryManager.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/TypeHistoryManager.java
index f41e4fa..1b6d19c 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/TypeHistoryManager.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/TypeHistoryManager.java
@@ -11,15 +11,26 @@
 
 package org.eclipse.mylar.internal.java;
 
+import java.io.File;
 import java.util.List;
 
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IMember;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.search.TypeNameMatch;
-import org.eclipse.jdt.internal.core.search.JavaSearchTypeNameMatch;
+import org.eclipse.jdt.core.compiler.CharOperation;
+import org.eclipse.jdt.core.search.IJavaSearchScope;
+import org.eclipse.jdt.internal.core.JavaModel;
+import org.eclipse.jdt.internal.core.search.HierarchyScope;
+import org.eclipse.jdt.internal.core.search.indexing.IIndexConstants;
 import org.eclipse.jdt.internal.corext.util.OpenTypeHistory;
+import org.eclipse.jdt.internal.corext.util.TypeInfo;
+import org.eclipse.jdt.internal.corext.util.TypeInfoFactory;
 import org.eclipse.mylar.context.core.IMylarContext;
 import org.eclipse.mylar.context.core.IMylarContextListener;
 import org.eclipse.mylar.context.core.IMylarElement;
@@ -30,7 +41,7 @@
  */
 public class TypeHistoryManager implements IMylarContextListener {
 
-//	private TypeInfoFactory factory = new TypeInfoFactory();
+	private TypeInfoFactory factory = new TypeInfoFactory();
 
 	public void contextActivated(IMylarContext context) {
 		clearTypeHistory();
@@ -47,15 +58,13 @@
 			IType type = (IType) element;
 			try {
 				if (type != null && type.exists() && !type.isAnonymous() && !isAspectjType(type)) {
-//					TypeInfo info = factory.create(type.getPackageFragment().getElementName().toCharArray(), type
-//							.getElementName().toCharArray(), enclosingTypeNames(type), type.getFlags(), getPath(type));
+					TypeInfo info = factory.create(type.getPackageFragment().getElementName().toCharArray(), type
+							.getElementName().toCharArray(), enclosingTypeNames(type), type.getFlags(), getPath(type));
 
-					JavaSearchTypeNameMatch typeNameMatch = new JavaSearchTypeNameMatch(type, type.getFlags());
-					
-					if (add && !OpenTypeHistory.getInstance().contains(typeNameMatch)) {
-						OpenTypeHistory.getInstance().accessed(typeNameMatch);
+					if (add && !OpenTypeHistory.getInstance().contains(info)) {
+						OpenTypeHistory.getInstance().accessed(info);
 					} else {
-						OpenTypeHistory.getInstance().remove(typeNameMatch);
+						OpenTypeHistory.getInstance().remove(info);
 					}
 				}
 			} catch (JavaModelException e) {
@@ -78,14 +87,14 @@
 	}
 
 	public void contextDeactivated(IMylarContext context) {
-		clearTypeHistory();
+//		clearTypeHistory();
 	}
 
 	/**
 	 * Public for testing
 	 */
 	public void clearTypeHistory() {
-		TypeNameMatch[] typeInfos = OpenTypeHistory.getInstance().getTypeInfos();
+		TypeInfo[] typeInfos = OpenTypeHistory.getInstance().getTypeInfos();
 		for (int i = 0; i < typeInfos.length; i++) {
 			OpenTypeHistory.getInstance().remove(typeInfos[i]);
 		} 
@@ -120,4 +129,61 @@
 	public void relationsChanged(IMylarElement node) {
 		// ignore
 	}
+
+	/**
+	 * Coped from: HierarchyScope constructor
+	 */
+	private String getPath(IType type) {
+		String focusPath = null;
+		IPackageFragmentRoot root = (IPackageFragmentRoot) type.getPackageFragment().getParent();
+		if (root.isArchive()) {
+			IPath jarPath = root.getPath();
+			Object target = JavaModel.getTarget(ResourcesPlugin.getWorkspace().getRoot(), jarPath, true);
+			String zipFileName;
+			if (target instanceof IFile) {
+				// internal jar
+				zipFileName = jarPath.toString();
+			} else if (target instanceof File) {
+				// external jar
+				zipFileName = ((File) target).getPath();
+			} else {
+				return null; // unknown target
+			}
+			focusPath = zipFileName + IJavaSearchScope.JAR_FILE_ENTRY_SEPARATOR
+					+ type.getFullyQualifiedName().replace('.', '/') + HierarchyScope.SUFFIX_STRING_class;
+		} else {
+			focusPath = type.getPath().toString();
+		}
+		return focusPath;
+	}
+
+	/**
+	 * Copied from: org.eclipse.java.search.SearchPattern
+	 */
+	private char[][] enclosingTypeNames(IType type) {
+		IJavaElement parent = type.getParent();
+		switch (parent.getElementType()) {
+		case IJavaElement.CLASS_FILE:
+			// For a binary type, the parent is not the enclosing type, but the
+			// declaring type is.
+			// (see bug 20532 Declaration of member binary type not found)
+			IType declaringType = type.getDeclaringType();
+			if (declaringType == null)
+				return CharOperation.NO_CHAR_CHAR;
+			return CharOperation.arrayConcat(enclosingTypeNames(declaringType), declaringType.getElementName()
+					.toCharArray());
+		case IJavaElement.COMPILATION_UNIT:
+			return CharOperation.NO_CHAR_CHAR;
+		case IJavaElement.FIELD:
+		case IJavaElement.INITIALIZER:
+		case IJavaElement.METHOD:
+			IType declaringClass = ((IMember) parent).getDeclaringType();
+			return CharOperation.arrayConcat(enclosingTypeNames(declaringClass), new char[][] {
+					declaringClass.getElementName().toCharArray(), IIndexConstants.ONE_STAR });
+		case IJavaElement.TYPE:
+			return CharOperation.arrayConcat(enclosingTypeNames((IType) parent), parent.getElementName().toCharArray());
+		default:
+			return null;
+		}
+	}
 }
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/JUnitLaunchConfigurationDelegateCOPY.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/JUnitLaunchConfigurationDelegateCOPY.java
deleted file mode 100644
index d795bd0..0000000
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/JUnitLaunchConfigurationDelegateCOPY.java
+++ /dev/null
@@ -1,578 +0,0 @@
-/*******************************************************************************
- * 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
- *     David Saff (saff@mit.edu) - bug 102632: [JUnit] Support for JUnit 4.
- *******************************************************************************/
-package org.eclipse.mylar.internal.java.ui.junit;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.internal.junit.launcher.JUnitBaseLaunchConfiguration;
-import org.eclipse.jdt.internal.junit.launcher.TestSearchResult;
-import org.eclipse.jdt.launching.ExecutionArguments;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMRunner;
-import org.eclipse.jdt.launching.SocketUtil;
-import org.eclipse.jdt.launching.VMRunnerConfiguration;
-import org.eclipse.osgi.util.NLS;
-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.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;
-import org.eclipse.pde.internal.ui.PDEUIMessages;
-import org.eclipse.pde.internal.ui.launcher.LaunchArgumentsHelper;
-import org.eclipse.pde.internal.ui.launcher.LaunchConfigurationHelper;
-import org.eclipse.pde.internal.ui.launcher.LaunchPluginValidator;
-import org.eclipse.pde.internal.ui.launcher.LauncherUtils;
-import org.eclipse.pde.internal.ui.launcher.VMHelper;
-import org.eclipse.pde.ui.launcher.IPDELauncherConstants;
-import org.eclipse.pde.ui.launcher.PDESourcePathProvider;
-
-/**
- * A launch delegate for launching JUnit Plug-in tests.
- * <p>
- * <b> Note: This class may still undergo significant changes in 3.3 before it
- * stabilizes </b>
- * </p>
- * 
- * @since 3.3
- */
-@SuppressWarnings("unchecked")
-public abstract class JUnitLaunchConfigurationDelegateCOPY extends JUnitBaseLaunchConfiguration {
-
-	// Changed to protected
-	protected abstract TestSearchResult customFindTestTypes(ILaunchConfiguration configuration, IProgressMonitor pm)
-			throws CoreException;
-	
-	/*
-	 * ---------------
-	 */
-	private String getTestPluginId(ILaunchConfiguration configuration) throws CoreException {
-		IJavaProject javaProject = getJavaProject(configuration);
-		IPluginModelBase model = PDECore.getDefault().getModelManager().findModel(javaProject.getProject());
-		if (model == null)
-			throw new CoreException(new Status(IStatus.ERROR, IPDEUIConstants.PLUGIN_ID, IStatus.ERROR,
-					PDEUIMessages.JUnitLaunchConfiguration_error_notaplugin, null));
-		if (model instanceof IFragmentModel)
-			return ((IFragmentModel) model).getFragment().getPluginId();
-
-		return model.getPluginBase().getId();
-	}
-	
-	public static final String CORE_APPLICATION = "org.eclipse.pde.junit.runtime.coretestapplication"; //$NON-NLS-1$
-
-	public static final String UI_APPLICATION = "org.eclipse.pde.junit.runtime.uitestapplication"; //$NON-NLS-1$
-
-	public static String[] REQUIRED_PLUGINS = {
-			"org.junit", "org.eclipse.jdt.junit.runtime", "org.eclipse.pde.junit.runtime" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-	protected File fConfigDir = null;
-
-	private Map fPluginMap;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.junit.launcher.JUnitBaseLaunchConfiguration#launch(org.eclipse.debug.core.ILaunchConfiguration,
-	 *      java.lang.String, org.eclipse.debug.core.ILaunch,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor)
-			throws CoreException {
-		try {
-			fConfigDir = null;
-			monitor.beginTask("", 4); //$NON-NLS-1$
-						
-			TestSearchResult testSearchResult = customFindTestTypes(configuration, new SubProgressMonitor(monitor, 1));
-			IType[] testTypes = testSearchResult.getTypes();
-
-			// Get the list of plug-ins to run
-			fPluginMap = LaunchPluginValidator.getPluginsToRun(configuration);
-
-			// implicitly add the plug-ins required for JUnit testing if
-			// necessary
-			for (int i = 0; i < REQUIRED_PLUGINS.length; i++) {
-				String id = REQUIRED_PLUGINS[i];
-				if (!fPluginMap.containsKey(id)) {
-					fPluginMap.put(id, findPlugin(id));
-				}
-			}
-
-			try {
-				preLaunchCheck(configuration, launch, new SubProgressMonitor(monitor, 2));
-			} catch (CoreException e) {
-				if (e.getStatus().getSeverity() == IStatus.CANCEL) {
-					monitor.setCanceled(true);
-					return;
-				}
-				throw e;
-			}
-
-			int port = SocketUtil.findFreePort();
-			launch.setAttribute(PORT_ATTR, Integer.toString(port));
-			launch.setAttribute(TESTTYPE_ATTR, testTypes[0].getHandleIdentifier());
-			VMRunnerConfiguration runnerConfig = createVMRunner(configuration, testSearchResult, port, mode);
-			monitor.worked(1);
-
-			setDefaultSourceLocator(launch, configuration);
-			manageLaunch(launch);
-			IVMRunner runner = getVMRunner(configuration, mode);
-			if (runner != null)
-				runner.run(runnerConfig, launch, monitor);
-			else
-				monitor.setCanceled(true);
-			monitor.done();
-		} catch (CoreException e) {
-			monitor.setCanceled(true);
-			throw e;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getVMRunner(org.eclipse.debug.core.ILaunchConfiguration,
-	 *      java.lang.String)
-	 */
-	@Override
-	public IVMRunner getVMRunner(ILaunchConfiguration configuration, String mode) throws CoreException {
-		IVMInstall launcher = VMHelper.createLauncher(configuration);
-		return launcher.getVMRunner(mode);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.junit.launcher.JUnitBaseLaunchConfiguration#createVMRunner(org.eclipse.debug.core.ILaunchConfiguration,
-	 *      org.eclipse.jdt.internal.junit.launcher.TestSearchResult, int,
-	 *      java.lang.String)
-	 */
-	@Override
-	protected VMRunnerConfiguration createVMRunner(ILaunchConfiguration configuration, TestSearchResult testTypes,
-			int port, String runMode) throws CoreException {
-
-		VMRunnerConfiguration runnerConfig = new VMRunnerConfiguration(
-				"org.eclipse.core.launcher.Main", getClasspath(configuration)); //$NON-NLS-1$
-		runnerConfig.setVMArguments(new ExecutionArguments(getVMArguments(configuration), "").getVMArgumentsArray()); //$NON-NLS-1$
-		runnerConfig.setProgramArguments(getProgramArgumentsArray(configuration, testTypes, port, runMode));
-		runnerConfig.setEnvironment(getEnvironment(configuration));
-		runnerConfig.setWorkingDirectory(getWorkingDirectory(configuration).getAbsolutePath());
-		runnerConfig.setVMSpecificAttributesMap(getVMSpecificAttributesMap(configuration));
-		return runnerConfig;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.internal.junit.launcher.JUnitBaseLaunchConfiguration#abort(java.lang.String,
-	 *      java.lang.Throwable, int)
-	 */
-	@Override
-	protected void abort(String message, Throwable exception, int code) throws CoreException {
-		throw new CoreException(new Status(IStatus.ERROR, IPDEUIConstants.PLUGIN_ID, code, message, exception));
-	}
-
-	/**
-	 * Returns the program arguments to launch with. This list is a combination
-	 * of arguments computed by PDE based on attributes specified in the given
-	 * launch configuration, followed by the program arguments that the entered
-	 * directly into the launch configuration.
-	 * 
-	 * @param configuration
-	 *            launch configuration
-	 * @return the program arguments necessary for launching
-	 * 
-	 * @exception CoreException
-	 *                if unable to retrieve the attribute or create the
-	 *                necessary configuration files
-	 */
-	private String[] getProgramArgumentsArray(ILaunchConfiguration configuration, TestSearchResult testSearchResult,
-			int port, String runMode) throws CoreException {
-		ArrayList programArgs = new ArrayList();
-
-		programArgs.addAll(getBasicArguments(configuration, port, runMode, testSearchResult));
-
-		// Specify the JUnit Plug-in test application to launch
-		programArgs.add("-application"); //$NON-NLS-1$
-		String application = null;
-		try {
-			application = configuration.getAttribute(IPDELauncherConstants.APPLICATION, (String) null);
-		} catch (CoreException e) {
-		}
-		programArgs.add(application != null ? application : UI_APPLICATION);
-
-		// If a product is specified, then add it to the program args
-		if (configuration.getAttribute(IPDELauncherConstants.USE_PRODUCT, false)) {
-			programArgs.add("-product"); //$NON-NLS-1$
-			programArgs.add(configuration.getAttribute(IPDELauncherConstants.PRODUCT, "")); //$NON-NLS-1$
-		} else {
-			// Specify the application to test
-			String testApplication = configuration.getAttribute(IPDELauncherConstants.APP_TO_TEST, (String) null);
-			if (testApplication != null && testApplication.length() > 0) {
-				programArgs.add("-testApplication"); //$NON-NLS-1$
-				programArgs.add(testApplication);
-			}
-		}
-
-		// Specify the location of the runtime workbench
-		String targetWorkspace = LaunchArgumentsHelper.getWorkspaceLocation(configuration);
-		if (targetWorkspace.length() > 0) {
-			programArgs.add("-data"); //$NON-NLS-1$
-			programArgs.add(targetWorkspace);
-		}
-
-		// Create the platform configuration for the runtime workbench
-		String productID = LaunchConfigurationHelper.getProductID(configuration);
-		LaunchConfigurationHelper.createConfigIniFile(configuration, productID, fPluginMap,
-				getConfigurationDirectory(configuration));
-		TargetPlatform.createPlatformConfigurationArea(fPluginMap, getConfigurationDirectory(configuration),
-				LaunchConfigurationHelper.getContributingPlugin(productID));
-
-		programArgs.add("-configuration"); //$NON-NLS-1$
-		programArgs
-				.add("file:" + new Path(getConfigurationDirectory(configuration).getPath()).addTrailingSeparator().toString()); //$NON-NLS-1$
-
-		// Specify the output folder names
-		programArgs.add("-dev"); //$NON-NLS-1$
-		programArgs.add(ClasspathHelper.getDevEntriesProperties(getConfigurationDirectory(configuration).toString()
-				+ "/dev.properties", fPluginMap)); //$NON-NLS-1$
-
-		// necessary for PDE to know how to load plugins when target platform =
-		// host platform
-		// see PluginPathFinder.getPluginPaths()
-		if (fPluginMap.containsKey(PDECore.getPluginId()))
-			programArgs.add("-pdelaunch"); //$NON-NLS-1$	
-
-		// Create the .options file if tracing is turned on
-		if (configuration.getAttribute(IPDELauncherConstants.TRACING, false)
-				&& !IPDELauncherConstants.TRACING_NONE.equals(configuration.getAttribute(
-						IPDELauncherConstants.TRACING_CHECKED, (String) null))) {
-			programArgs.add("-debug"); //$NON-NLS-1$
-			String path = getConfigurationDirectory(configuration).getPath() + IPath.SEPARATOR + ".options"; //$NON-NLS-1$
-			programArgs.add(LaunchArgumentsHelper.getTracingFileArgument(configuration, path));
-		}
-
-		// add the program args specified by the user
-		String[] userArgs = LaunchArgumentsHelper.getUserProgramArgumentArray(configuration);
-		for (int i = 0; i < userArgs.length; i++) {
-			// be forgiving if people have tracing turned on and forgot
-			// to remove the -debug from the program args field.
-			if (userArgs[i].equals("-debug") && programArgs.contains("-debug")) //$NON-NLS-1$ //$NON-NLS-2$
-				continue;
-			programArgs.add(userArgs[i]);
-		}
-
-		if (!programArgs.contains("-os")) { //$NON-NLS-1$
-			programArgs.add("-os"); //$NON-NLS-1$
-			programArgs.add(TargetPlatform.getOS());
-		}
-		if (!programArgs.contains("-ws")) { //$NON-NLS-1$
-			programArgs.add("-ws"); //$NON-NLS-1$
-			programArgs.add(TargetPlatform.getWS());
-		}
-		if (!programArgs.contains("-arch")) { //$NON-NLS-1$
-			programArgs.add("-arch"); //$NON-NLS-1$
-			programArgs.add(TargetPlatform.getOSArch());
-		}
-
-		programArgs.add("-testpluginname"); //$NON-NLS-1$
-		programArgs.add(getTestPluginId(configuration));
-
-		programArgs.add("-loaderpluginname"); //$NON-NLS-1$
-		programArgs.add(testSearchResult.getTestKind().getLoaderPluginId());
-
-		String testFailureNames = configuration.getAttribute(JUnitBaseLaunchConfiguration.FAILURES_FILENAME_ATTR, ""); //$NON-NLS-1$
-		if (testFailureNames.length() > 0) {
-			programArgs.add("-testfailures"); //$NON-NLS-1$
-			programArgs.add(testFailureNames);
-		}
-
-		// a testname was specified just run the single test
-		IType[] testTypes = testSearchResult.getTypes();
-		String testName = configuration.getAttribute(JUnitBaseLaunchConfiguration.TESTNAME_ATTR, ""); //$NON-NLS-1$
-		if (testName.length() > 0) {
-			programArgs.add("-test"); //$NON-NLS-1$
-			programArgs.add(testTypes[0].getFullyQualifiedName() + ":" + testName); //$NON-NLS-1$
-		} else {
-			programArgs.add("-classnames"); //$NON-NLS-1$
-			for (int i = 0; i < testTypes.length; i++)
-				programArgs.add(testTypes[i].getFullyQualifiedName());
-		}
-//		System.err.println(">>>> " + programArgs);
-		return (String[]) programArgs.toArray(new String[programArgs.size()]);
-	}
-
-	private IPluginModelBase findPlugin(String id) throws CoreException {
-		PluginModelManager manager = PDECore.getDefault().getModelManager();
-		IPluginModelBase model = manager.findModel(id);
-		if (model == null)
-			model = PDECore.getDefault().findPluginInHost(id);
-		if (model == null)
-			abort(NLS.bind(PDEUIMessages.JUnitLaunchConfiguration_error_missingPlugin, id), null, IStatus.OK);
-		return model;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getProgramArguments(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	@Override
-	public String getProgramArguments(ILaunchConfiguration configuration) throws CoreException {
-		return LaunchArgumentsHelper.getUserProgramArguments(configuration);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getVMArguments(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	@Override
-	public String getVMArguments(ILaunchConfiguration configuration) throws CoreException {
-		return LaunchArgumentsHelper.getUserVMArguments(configuration);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getEnvironment(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	@Override
-	public String[] getEnvironment(ILaunchConfiguration configuration) throws CoreException {
-		return DebugPlugin.getDefault().getLaunchManager().getEnvironment(configuration);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getClasspath(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	@Override
-	public String[] getClasspath(ILaunchConfiguration configuration) throws CoreException {
-		String[] classpath = LaunchArgumentsHelper.constructClasspath(configuration);
-		if (classpath == null) {
-			abort(PDEUIMessages.WorkbenchLauncherConfigurationDelegate_noStartup, null, IStatus.OK);
-		}
-		return classpath;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getWorkingDirectory(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	@Override
-	public File getWorkingDirectory(ILaunchConfiguration configuration) throws CoreException {
-		return LaunchArgumentsHelper.getWorkingDirectory(configuration);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getVMSpecificAttributesMap(org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	@Override
-	public Map getVMSpecificAttributesMap(ILaunchConfiguration configuration) throws CoreException {
-		return LaunchArgumentsHelper.getVMSpecificAttributesMap(configuration);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#setDefaultSourceLocator(org.eclipse.debug.core.ILaunch,
-	 *      org.eclipse.debug.core.ILaunchConfiguration)
-	 */
-	@Override
-	protected void setDefaultSourceLocator(ILaunch launch, ILaunchConfiguration configuration) throws CoreException {
-		ILaunchConfigurationWorkingCopy wc = null;
-		if (configuration.isWorkingCopy()) {
-			wc = (ILaunchConfigurationWorkingCopy) configuration;
-		} else {
-			wc = configuration.getWorkingCopy();
-		}
-		String id = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER,
-				(String) null);
-		if (!PDESourcePathProvider.ID.equals(id)) {
-			wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER, PDESourcePathProvider.ID);
-			wc.doSave();
-		}
-	}
-
-	/**
-	 * Returns the location of the configuration area
-	 * 
-	 * @param configuration
-	 *            the launch configuration
-	 * @return a directory where the configuration area is located
-	 */
-	protected File getConfigurationDirectory(ILaunchConfiguration configuration) {
-		if (fConfigDir == null)
-			fConfigDir = LaunchConfigurationHelper.getConfigurationArea(configuration);
-		return fConfigDir;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getBuildOrder(org.eclipse.debug.core.ILaunchConfiguration,
-	 *      java.lang.String)
-	 */
-	@Override
-	protected IProject[] getBuildOrder(ILaunchConfiguration configuration, String mode) throws CoreException {
-		return computeBuildOrder(LaunchPluginValidator.getAffectedProjects(configuration));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getProjectsForProblemSearch(org.eclipse.debug.core.ILaunchConfiguration,
-	 *      java.lang.String)
-	 */
-	@Override
-	protected IProject[] getProjectsForProblemSearch(ILaunchConfiguration configuration, String mode)
-			throws CoreException {
-		return LaunchPluginValidator.getAffectedProjects(configuration);
-	}
-
-	/**
-	 * Adds a listener to the launch to be notified at interesting launch
-	 * lifecycle events such as when the launch terminates.
-	 * 
-	 * @param launch
-	 *            the launch
-	 */
-	protected void manageLaunch(ILaunch launch) {
-		PDEPlugin.getDefault().getLaunchListener().manage(launch);
-	}
-
-	/**
-	 * Does sanity checking before launching. The criteria whether the launch
-	 * should proceed or not is specific to the launch configuration type.
-	 * 
-	 * @param configuration
-	 *            launch configuration
-	 * @param launch
-	 *            the launch object to contribute processes and debug targets to
-	 * @param monitor
-	 *            a progress monitor
-	 * 
-	 * @throws CoreException
-	 *             exception thrown if launch fails or canceled or if unable to
-	 *             retrieve attributes from the launch configuration
-	 * 
-	 */
-	protected void preLaunchCheck(ILaunchConfiguration configuration, ILaunch launch, IProgressMonitor monitor)
-			throws CoreException {
-		boolean autoValidate = configuration.getAttribute(IPDELauncherConstants.AUTOMATIC_VALIDATE, false);
-		monitor.beginTask("", autoValidate ? 3 : 4); //$NON-NLS-1$
-		if (autoValidate)
-			validatePluginDependencies(configuration, new SubProgressMonitor(monitor, 1));
-		validateProjectDependencies(configuration, new SubProgressMonitor(monitor, 1));
-		clear(configuration, new SubProgressMonitor(monitor, 1));
-		launch.setAttribute(IPDELauncherConstants.CONFIG_LOCATION, getConfigurationDirectory(configuration).toString());
-		synchronizeManifests(configuration, new SubProgressMonitor(monitor, 1));
-	}
-
-	/**
-	 * Checks for old-style plugin.xml files that have become stale since the
-	 * last launch. For any stale plugin.xml files found, the corresponding
-	 * MANIFEST.MF is deleted from the runtime configuration area so that it
-	 * gets regenerated upon startup.
-	 * 
-	 * @param configuration
-	 *            the launch configuration
-	 * @param monitor
-	 *            the progress monitor
-	 */
-	protected void synchronizeManifests(ILaunchConfiguration configuration, IProgressMonitor monitor) {
-		LaunchConfigurationHelper.synchronizeManifests(configuration, getConfigurationDirectory(configuration));
-		monitor.done();
-	}
-
-	/**
-	 * Clears the workspace prior to launching if the workspace exists and the
-	 * option to clear it is turned on. Also clears the configuration area if
-	 * that option is chosen.
-	 * 
-	 * @param configuration
-	 *            the launch configuration
-	 * @param monitor
-	 *            the progress monitor
-	 * @throws CoreException
-	 *             if unable to retrieve launch attribute values
-	 * @since 3.3
-	 */
-	protected void clear(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {
-		String workspace = LaunchArgumentsHelper.getWorkspaceLocation(configuration);
-		// Clear workspace and prompt, if necessary
-		if (!LauncherUtils.clearWorkspace(configuration, workspace, new SubProgressMonitor(monitor, 1))) {
-			monitor.setCanceled(true);
-			return;
-		}
-
-		// clear config area, if necessary
-		if (configuration.getAttribute(IPDELauncherConstants.CONFIG_CLEAR_AREA, false))
-			CoreUtility.deleteContent(getConfigurationDirectory(configuration));
-	}
-
-	/**
-	 * Checks if the Automated Management of Dependencies option is turned on.
-	 * If so, it makes aure all manifests are updated with the correct
-	 * dependencies.
-	 * 
-	 * @param configuration
-	 *            the launch configuration
-	 * @param monitor
-	 *            a progress monitor
-	 */
-	protected void validateProjectDependencies(ILaunchConfiguration configuration, IProgressMonitor monitor) {
-		LauncherUtils.validateProjectDependencies(configuration, monitor);
-	}
-
-	/**
-	 * Validates inter-bundle dependencies automatically prior to launching if
-	 * that option is turned on.
-	 * 
-	 * @param configuration
-	 *            the launch configuration
-	 * @param monitor
-	 *            a progress monitor
-	 */
-	protected void validatePluginDependencies(ILaunchConfiguration configuration, IProgressMonitor monitor)
-			throws CoreException {
-		Assert.isNotNull(fPluginMap);
-		IPluginModelBase[] models = (IPluginModelBase[]) fPluginMap.values().toArray(
-				new IPluginModelBase[fPluginMap.size()]);
-		LaunchPluginValidator.validatePluginDependencies(models, monitor);
-	}
-}
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarContextTestUtil.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarContextTestUtil.java
index f57c1be..00e71e9 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarContextTestUtil.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarContextTestUtil.java
@@ -15,13 +15,10 @@
 import java.util.List;
 import java.util.Set;
 
-import org.eclipse.core.resources.IProjectNature;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
 import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.IMethod;
 import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.core.ITypeHierarchy;
@@ -29,11 +26,10 @@
 import org.eclipse.jdt.internal.junit.launcher.ITestKind;
 import org.eclipse.jdt.internal.junit.launcher.TestKindRegistry;
 import org.eclipse.jdt.internal.junit.launcher.TestSearchResult;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.mylar.context.core.AbstractContextStructureBridge;
 import org.eclipse.mylar.context.core.ContextCorePlugin;
 import org.eclipse.mylar.context.core.IMylarElement;
 import org.eclipse.mylar.context.core.IMylarRelation;
-import org.eclipse.mylar.context.core.AbstractContextStructureBridge;
 import org.eclipse.mylar.context.core.MylarStatusHandler;
 import org.eclipse.mylar.internal.java.JavaStructureBridge;
 import org.eclipse.mylar.internal.java.search.JUnitReferencesProvider;
@@ -43,42 +39,20 @@
  */
 public class MylarContextTestUtil {
 
-	public static TestSearchResult findTestTypes(ILaunchConfiguration configuration, IProgressMonitor pm)
-			throws CoreException {
+	public static TestSearchResult findTestTypes(ILaunchConfiguration configuration, IProgressMonitor pm) throws CoreException {
 		Set<IType> contextTestCases = MylarContextTestUtil.getTestCasesInContext();
-		// ITestKind testKind =
-		// TestKindRegistry.getDefault().getKind(configuration);
-		ITestKind testKind = TestKindRegistry.getDefault().getKind(TestKindRegistry.JUNIT3_TEST_KIND_ID);
-
-		IJavaProject javaProject = null;
-		for (IType type : contextTestCases) {
-			IProjectNature nature = type.getJavaProject().getProject().getNature("org.eclipse.pde.PluginNature");
-			if (nature != null) {
-				// HACK: might want another project
-				javaProject = type.getJavaProject(); 
-			}
-		}
-
-		ILaunchConfigurationWorkingCopy workingCopy = configuration.getWorkingCopy();
-		if (javaProject != null) {
-			workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, javaProject.getElementName()); 
-		}
-//		workingCopy.setAttribute(JUnitBaseLaunchConfiguration.ATTR_KEEPRUNNING, false);
-//		workingCopy.setAttribute(JUnitBaseLaunchConfiguration.TEST_KIND_ATTR, TestKindRegistry.JUNIT3_TEST_KIND_ID);
-		workingCopy.doSave();
-
+		ITestKind testKind = TestKindRegistry.getDefault().getKind(configuration);
 		// HACK: only checks first type
 		if (contextTestCases.size() > 0) {
-			testKind = TestKindRegistry.getDefault().getKind(configuration);// contextTestCases.iterator().next());
+			testKind = TestKindRegistry.getDefault().getKind(contextTestCases.iterator().next());
 		}
 		return new TestSearchResult(contextTestCases.toArray(new IType[contextTestCases.size()]), testKind);
 	}
-
+	
 	public static Set<IType> getTestCasesInContext() {
 		Set<IType> testTypes = new HashSet<IType>();
 		List<IMylarElement> interesting = ContextCorePlugin.getContextManager().getActiveContext().getInteresting();
-		AbstractContextStructureBridge bridge = ContextCorePlugin.getDefault().getStructureBridge(
-				JavaStructureBridge.CONTENT_TYPE);
+		AbstractContextStructureBridge bridge = ContextCorePlugin.getDefault().getStructureBridge(JavaStructureBridge.CONTENT_TYPE);
 		try {
 			for (IMylarElement element : interesting) {
 				if (element.getContentType().equals(JavaStructureBridge.CONTENT_TYPE)) {
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitLaunchConfiguration.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitLaunchConfiguration.java
index e199fcb..42023ad 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitLaunchConfiguration.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitLaunchConfiguration.java
@@ -11,32 +11,20 @@
 
 package org.eclipse.mylar.internal.java.ui.junit;
 
-import java.io.File;
-import java.util.Map;
-
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunch;
 import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.jdt.internal.junit.Messages;
 import org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfiguration;
 import org.eclipse.jdt.internal.junit.launcher.TestSearchResult;
 import org.eclipse.jdt.internal.junit.ui.JUnitMessages;
-import org.eclipse.jdt.launching.ExecutionArguments;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMRunner;
-import org.eclipse.jdt.launching.SocketUtil;
-import org.eclipse.jdt.launching.VMRunnerConfiguration;
 
 /**
  * @author Mik Kersten
  */
-@SuppressWarnings("unchecked")
 public class MylarJUnitLaunchConfiguration extends JUnitLaunchConfiguration {
-	
-	protected TestSearchResult customFindTestTypes(ILaunchConfiguration configuration, IProgressMonitor pm) throws CoreException {
+
+	protected TestSearchResult findTestTypes(ILaunchConfiguration configuration, IProgressMonitor pm) throws CoreException {
 		TestSearchResult testSearchResult = MylarContextTestUtil.findTestTypes(configuration, pm);
 		if (testSearchResult.getTypes().length == 0) {
 			abort(JUnitMessages.JUnitBaseLaunchConfiguration_error_notests, null,
@@ -44,54 +32,4 @@
 		}
 		return testSearchResult;
 	}
-
-	/* --------- HACK: below copied from JUnitBaseLaunchConfiguration ----------- */
-	
-	@Override
-	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor pm) throws CoreException {		
-		if (mode.equals(RUN_QUIETLY_MODE)) {
-			launch.setAttribute(NO_DISPLAY_ATTR, "true"); //$NON-NLS-1$
-			mode = ILaunchManager.RUN_MODE;
-		}
-			
-		TestSearchResult testTypes = customFindTestTypes(configuration, pm);
-		IVMInstall install= getVMInstall(configuration);
-		IVMRunner runner = install.getVMRunner(mode);
-		if (runner == null) {
-			abort(Messages.format(JUnitMessages.JUnitBaseLaunchConfiguration_error_novmrunner, new String[]{install.getId()}), null, IJavaLaunchConfigurationConstants.ERR_VM_RUNNER_DOES_NOT_EXIST); 
-		}
-		
-		int port= SocketUtil.findFreePort();
-		VMRunnerConfiguration runConfig= launchTypes(configuration, mode, testTypes, port);
-		setDefaultSourceLocator(launch, configuration);
-		
-		launch.setAttribute(PORT_ATTR, Integer.toString(port));
-		launch.setAttribute(TESTTYPE_ATTR, testTypes.getTypes()[0].getHandleIdentifier());
-		runner.run(runConfig, launch, pm);		
-	}
-
-	private final VMRunnerConfiguration launchTypes(ILaunchConfiguration configuration, String mode, TestSearchResult tests, int port) throws CoreException {
-		File workingDir = verifyWorkingDirectory(configuration);
-		String workingDirName = null;
-		if (workingDir != null) 
-			workingDirName = workingDir.getAbsolutePath();
-		
-		// Program & VM args
-		String vmArgs= getVMArguments(configuration);
-		ExecutionArguments execArgs = new ExecutionArguments(vmArgs, ""); //$NON-NLS-1$
-		String[] envp= getEnvironment(configuration);
-	
-		VMRunnerConfiguration runConfig= createVMRunner(configuration, tests, port, mode);
-		runConfig.setVMArguments(execArgs.getVMArgumentsArray());
-		runConfig.setWorkingDirectory(workingDirName);
-		runConfig.setEnvironment(envp);
-	
-		Map vmAttributesMap = getVMSpecificAttributesMap(configuration);
-		runConfig.setVMSpecificAttributesMap(vmAttributesMap);
-	
-		String[] bootpath = getBootpath(configuration);
-		runConfig.setBootClassPath(bootpath);
-		
-		return runConfig;
-	}
 }
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitMainTab.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitMainTab.java
index 5a28acf..2715198 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitMainTab.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitMainTab.java
@@ -16,7 +16,7 @@
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
 import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationTab;
+import org.eclipse.jdt.internal.junit.launcher.JUnitLaunchConfigurationTab;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
 import org.eclipse.mylar.internal.java.MylarJavaPlugin;
 import org.eclipse.swt.SWT;
@@ -39,7 +39,6 @@
 		this.isPdeMode = isPdeMode;
 	}
 
-	@Override
 	public void createControl(Composite parent) {
 		Composite comp = new Composite(parent, SWT.NONE);
 		setControl(comp);
@@ -57,7 +56,6 @@
 		label.setText(DESCRIPTION);
 	}
 
-	@Override
 	public void performApply(ILaunchConfigurationWorkingCopy config) {
 		if (!isPdeMode) {
 			Set<IType> types = MylarContextTestUtil.getTestCasesInContext();
@@ -69,22 +67,18 @@
 		}
 	}
 
-	@Override
 	public void setDefaults(ILaunchConfigurationWorkingCopy config) {
 		// ignore
 	}
 
-	@Override
 	public void initializeFrom(ILaunchConfiguration config) {
 		// ignore
 	}
 
-	@Override
 	public String getName() {
 		return "JUnit";
 	}
 
-	@Override
 	public Image getImage() {
 		return MylarJavaPlugin.getImageDescriptor("icons/etool16/junit-tab.gif").createImage();
 	}
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitTabGroup.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitTabGroup.java
index 4bfad7b..0713131 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitTabGroup.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarJUnitTabGroup.java
@@ -30,17 +30,12 @@
 public class MylarJUnitTabGroup extends AbstractLaunchConfigurationTabGroup {
 
 	public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
-		ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] { 
-				new MylarJUnitMainTab(false),
-				new JavaArgumentsTab(), 
-				new JavaClasspathTab(), 
-				new JavaJRETab(), 
-				new SourceLookupTab(),
+		ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[] { new MylarJUnitMainTab(false),
+				new JavaArgumentsTab(), new JavaClasspathTab(), new JavaJRETab(), new SourceLookupTab(),
 				new EnvironmentTab(), new CommonTab() };
 		setTabs(tabs);
 	}
 
-	@Override
 	public void setDefaults(ILaunchConfigurationWorkingCopy config) {
 		super.setDefaults(config);
 	}
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitLaunchConfiguration.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitLaunchConfiguration.java
index 851d16b..903eef6 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitLaunchConfiguration.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitLaunchConfiguration.java
@@ -11,23 +11,32 @@
 
 package org.eclipse.mylar.internal.java.ui.junit;
 
+import java.util.Set;
+
+import org.eclipse.core.resources.IProjectNature;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.internal.junit.launcher.TestSearchResult;
 import org.eclipse.jdt.internal.junit.ui.JUnitMessages;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.pde.core.plugin.IFragmentModel;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.internal.core.PDECore;
+import org.eclipse.pde.internal.ui.PDEPlugin;
+import org.eclipse.pde.internal.ui.launcher.JUnitLaunchConfiguration;
 
 /**
  * @author Mik Kersten
  */
-public class MylarPdeJUnitLaunchConfiguration extends JUnitLaunchConfigurationDelegateCOPY {
+public class MylarPdeJUnitLaunchConfiguration extends JUnitLaunchConfiguration {
 
-	@Override
-	protected TestSearchResult customFindTestTypes(ILaunchConfiguration configuration, IProgressMonitor pm)
-			throws CoreException {
+	protected TestSearchResult findTestTypes(ILaunchConfiguration configuration, IProgressMonitor pm) throws CoreException {
 		TestSearchResult testSearchResult = MylarContextTestUtil.findTestTypes(configuration, pm);
-		
 		if (testSearchResult.getTypes().length == 0) {
 			abort(JUnitMessages.JUnitBaseLaunchConfiguration_error_notests, null,
 					IJavaLaunchConfigurationConstants.ERR_UNSPECIFIED_MAIN_TYPE);
@@ -35,253 +44,27 @@
 		return testSearchResult;
 	}
 
-//	protected String getTestPluginId(ILaunchConfiguration configuration) throws CoreException {
-//		Set<IType> contextTestCases = MylarContextTestUtil.getTestCasesInContext();
-//		IJavaProject javaProject = null;
-//		for (IType type : contextTestCases) {
-//			IProjectNature nature = type.getJavaProject().getProject().getNature("org.eclipse.pde.PluginNature");
-//			if (nature != null) {
-//				javaProject = type.getJavaProject(); // HACK: might want
-//				// another project
-//			}
-//		}
-//		
-//		IPluginModelBase model = PDECore.getDefault().getModelManager().findModel(javaProject.getProject());
-//		if (model == null)
-//			throw new CoreException(new Status(IStatus.ERROR, IPDEUIConstants.PLUGIN_ID, IStatus.ERROR,
-//					PDEUIMessages.JUnitLaunchConfiguration_error_notaplugin, null));
-//		if (model instanceof IFragmentModel)
-//			return ((IFragmentModel) model).getFragment().getPluginId();
-//
-//		return model.getPluginBase().getId();
-//	}
+	protected String getTestPluginId(ILaunchConfiguration configuration) throws CoreException {
+		Set<IType> contextTestCases = MylarContextTestUtil.getTestCasesInContext();
+		IJavaProject javaProject = null;
+		for (IType type : contextTestCases) {
+			IProjectNature nature = type.getJavaProject().getProject().getNature("org.eclipse.pde.PluginNature");
+			if (nature != null) {
+				javaProject = type.getJavaProject(); // HACK: might want
+														// another project
+			}
+		}
+		// IJavaProject javaProject = getJavaProject(configuration);
+		IPluginModelBase model = null;
+		if (javaProject != null) {
+			model = PDECore.getDefault().getModelManager().findModel(javaProject.getProject());
+		}
+		if (javaProject == null || model == null)
+			throw new CoreException(new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID, IStatus.ERROR,
+					"Could not find JUnit Plug-in Test in Task Context", null));
+		if (model instanceof IFragmentModel)
+			return ((IFragmentModel) model).getFragment().getPluginId();
 
-	
-//	protected String getTestPluginId(ILaunchConfiguration configuration) throws CoreException {
-//		Set<IType> contextTestCases = MylarContextTestUtil.getTestCasesInContext();
-//		IJavaProject javaProject = null;
-//		for (IType type : contextTestCases) {
-//			IProjectNature nature = type.getJavaProject().getProject().getNature("org.eclipse.pde.PluginNature");
-//			if (nature != null) {
-//				javaProject = type.getJavaProject(); // HACK: might want
-//				// another project
-//			}
-//		}
-//		// IJavaProject javaProject = getJavaProject(configuration);
-//		IPluginModelBase model = null;
-//		if (javaProject != null) {
-//			model = PDECore.getDefault().getModelManager().findModel(javaProject.getProject());
-//		}
-//		if (javaProject == null || model == null)
-//			throw new CoreException(new Status(IStatus.ERROR, PDEPlugin.PLUGIN_ID, IStatus.ERROR,
-//					"Could not find JUnit Plug-in Test in Task Context", null));
-//		if (model instanceof IFragmentModel)
-//			return ((IFragmentModel) model).getFragment().getPluginId();
-//		
-//		return model.getPluginBase().getId();
-//	}
-
-	/*
-	 * ---------------------------------------------------------------- 
-	 * HACK: below copied from JUnitLaunchConfigurationDelegate 
-	 * ----------------------------------------------------------------
-	 */
-
-//	protected VMRunnerConfiguration createVMRunner(ILaunchConfiguration configuration, TestSearchResult testTypes,
-//			int port, String runMode) throws CoreException {
-//
-//		
-//		VMRunnerConfiguration runnerConfig = new VMRunnerConfiguration(
-//				"org.eclipse.core.launcher.Main", getClasspath(configuration)); //$NON-NLS-1$
-//		runnerConfig.setVMArguments(new ExecutionArguments(getVMArguments(configuration), "").getVMArgumentsArray()); //$NON-NLS-1$
-//		runnerConfig.setProgramArguments(getProgramArgumentsArray(configuration, testTypes, port, runMode));
-//		runnerConfig.setEnvironment(getEnvironment(configuration));
-//		runnerConfig.setWorkingDirectory(getWorkingDirectory(configuration).getAbsolutePath());
-//		runnerConfig.setVMSpecificAttributesMap(getVMSpecificAttributesMap(configuration));
-//		return runnerConfig;
-//	}
-//
-//	/*
-//	 * (non-Javadoc)
-//	 * 
-//	 * @see org.eclipse.jdt.internal.junit.launcher.JUnitBaseLaunchConfiguration#launch(org.eclipse.debug.core.ILaunchConfiguration,
-//	 *      java.lang.String, org.eclipse.debug.core.ILaunch,
-//	 *      org.eclipse.core.runtime.IProgressMonitor)
-//	 */
-//	public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor)
-//			throws CoreException {
-//		try {
-//			fConfigDir = null;
-//			monitor.beginTask("", 4); //$NON-NLS-1$
-//			TestSearchResult testSearchResult = customFindTestTypes(configuration, new SubProgressMonitor(monitor, 1));
-//			IType[] testTypes = testSearchResult.getTypes();
-//
-//			// Get the list of plug-ins to run
-//			fPluginMapFromSuper = LaunchPluginValidator.getPluginsToRun(configuration);
-//
-//			// implicitly add the plug-ins required for JUnit testing if
-//			// necessary
-//			for (int i = 0; i < REQUIRED_PLUGINS.length; i++) {
-//				String id = REQUIRED_PLUGINS[i];
-//				if (!fPluginMapFromSuper.containsKey(id)) {
-//					fPluginMapFromSuper.put(id, findPlugin(id));
-//				}
-//			}
-//
-//			try {
-//				preLaunchCheck(configuration, launch, new SubProgressMonitor(monitor, 2));
-//			} catch (CoreException e) {
-//				if (e.getStatus().getSeverity() == IStatus.CANCEL) {
-//					monitor.setCanceled(true);
-//					return;
-//				}
-//				throw e;
-//			}
-//
-//			int port = SocketUtil.findFreePort();
-//			launch.setAttribute(PORT_ATTR, Integer.toString(port));
-//			launch.setAttribute(TESTTYPE_ATTR, testTypes[0].getHandleIdentifier());
-//			VMRunnerConfiguration runnerConfig = createVMRunner(configuration, testSearchResult, port, mode);
-//			monitor.worked(1);
-//
-//			setDefaultSourceLocator(launch, configuration);
-//			manageLaunch(launch);
-//			IVMRunner runner = getVMRunner(configuration, mode);
-//			if (runner != null)
-//				runner.run(runnerConfig, launch, monitor);
-//			else
-//				monitor.setCanceled(true);
-//			monitor.done();
-//		} catch (CoreException e) {
-//			monitor.setCanceled(true);
-//			throw e;
-//		}
-//	}
-//
-//	private IPluginModelBase findPlugin(String id) throws CoreException {
-//		PluginModelManager manager = PDECore.getDefault().getModelManager();
-//		IPluginModelBase model = manager.findModel(id);
-//		if (model == null)
-//			model = PDECore.getDefault().findPluginInHost(id);
-//		if (model == null)
-//			abort(NLS.bind(PDEUIMessages.JUnitLaunchConfiguration_error_missingPlugin, id), null, IStatus.OK);
-//		return model;
-//	}
-//
-//	@SuppressWarnings("unchecked")
-//	private String[] getProgramArgumentsArray(ILaunchConfiguration configuration, TestSearchResult testSearchResult,
-//			int port, String runMode) throws CoreException {
-//		ArrayList programArgs = new ArrayList();
-//
-//		programArgs.addAll(getBasicArguments(configuration, port, runMode, testSearchResult));
-//
-//		// Specify the JUnit Plug-in test application to launch
-//		programArgs.add("-application"); //$NON-NLS-1$
-//		String application = null;
-//		try {
-//			application = configuration.getAttribute(IPDELauncherConstants.APPLICATION, (String) null);
-//		} catch (CoreException e) {
-//		}
-//		programArgs.add(application != null ? application : UI_APPLICATION);
-//
-//		// If a product is specified, then add it to the program args
-//		if (configuration.getAttribute(IPDELauncherConstants.USE_PRODUCT, false)) {
-//			programArgs.add("-product"); //$NON-NLS-1$
-//			programArgs.add(configuration.getAttribute(IPDELauncherConstants.PRODUCT, "")); //$NON-NLS-1$
-//		} else {
-//			// Specify the application to test
-//			String testApplication = configuration.getAttribute(IPDELauncherConstants.APP_TO_TEST, (String) null);
-//			if (testApplication != null && testApplication.length() > 0) {
-//				programArgs.add("-testApplication"); //$NON-NLS-1$
-//				programArgs.add(testApplication);
-//			}
-//		}
-//
-//		// Specify the location of the runtime workbench
-//		String targetWorkspace = LaunchArgumentsHelper.getWorkspaceLocation(configuration);
-//		if (targetWorkspace.length() > 0) {
-//			programArgs.add("-data"); //$NON-NLS-1$
-//			programArgs.add(targetWorkspace);
-//		}
-//
-//		// Create the platform configuration for the runtime workbench
-//		String productID = LaunchConfigurationHelper.getProductID(configuration);
-//		LaunchConfigurationHelper.createConfigIniFile(configuration, productID, fPluginMapFromSuper,
-//				getConfigurationDirectory(configuration));
-//		TargetPlatform.createPlatformConfigurationArea(fPluginMapFromSuper, getConfigurationDirectory(configuration),
-//				LaunchConfigurationHelper.getContributingPlugin(productID));
-//
-//		programArgs.add("-configuration"); //$NON-NLS-1$
-//		programArgs
-//				.add("file:" + new Path(getConfigurationDirectory(configuration).getPath()).addTrailingSeparator().toString()); //$NON-NLS-1$
-//
-//		// Specify the output folder names
-//		programArgs.add("-dev"); //$NON-NLS-1$
-//		programArgs.add(ClasspathHelper.getDevEntriesProperties(getConfigurationDirectory(configuration).toString()
-//				+ "/dev.properties", fPluginMapFromSuper)); //$NON-NLS-1$
-//
-//		// necessary for PDE to know how to load plugins when target platform =
-//		// host platform
-//		// see PluginPathFinder.getPluginPaths()
-//		if (fPluginMapFromSuper.containsKey(PDECore.getPluginId()))
-//			programArgs.add("-pdelaunch"); //$NON-NLS-1$	
-//
-//		// Create the .options file if tracing is turned on
-//		if (configuration.getAttribute(IPDELauncherConstants.TRACING, false)
-//				&& !IPDELauncherConstants.TRACING_NONE.equals(configuration.getAttribute(
-//						IPDELauncherConstants.TRACING_CHECKED, (String) null))) {
-//			programArgs.add("-debug"); //$NON-NLS-1$
-//			String path = getConfigurationDirectory(configuration).getPath() + IPath.SEPARATOR + ".options"; //$NON-NLS-1$
-//			programArgs.add(LaunchArgumentsHelper.getTracingFileArgument(configuration, path));
-//		}
-//
-//		// add the program args specified by the user
-//		String[] userArgs = LaunchArgumentsHelper.getUserProgramArgumentArray(configuration);
-//		for (int i = 0; i < userArgs.length; i++) {
-//			// be forgiving if people have tracing turned on and forgot
-//			// to remove the -debug from the program args field.
-//			if (userArgs[i].equals("-debug") && programArgs.contains("-debug")) //$NON-NLS-1$ //$NON-NLS-2$
-//				continue;
-//			programArgs.add(userArgs[i]);
-//		}
-//
-//		if (!programArgs.contains("-os")) { //$NON-NLS-1$
-//			programArgs.add("-os"); //$NON-NLS-1$
-//			programArgs.add(TargetPlatform.getOS());
-//		}
-//		if (!programArgs.contains("-ws")) { //$NON-NLS-1$
-//			programArgs.add("-ws"); //$NON-NLS-1$
-//			programArgs.add(TargetPlatform.getWS());
-//		}
-//		if (!programArgs.contains("-arch")) { //$NON-NLS-1$
-//			programArgs.add("-arch"); //$NON-NLS-1$
-//			programArgs.add(TargetPlatform.getOSArch());
-//		}
-//
-//		programArgs.add("-testpluginname"); //$NON-NLS-1$
-//		programArgs.add(getTestPluginId(configuration));
-//
-//		programArgs.add("-loaderpluginname"); //$NON-NLS-1$
-//		programArgs.add(testSearchResult.getTestKind().getLoaderPluginId());
-//
-//		String testFailureNames = configuration.getAttribute(JUnitBaseLaunchConfiguration.FAILURES_FILENAME_ATTR, ""); //$NON-NLS-1$
-//		if (testFailureNames.length() > 0) {
-//			programArgs.add("-testfailures"); //$NON-NLS-1$
-//			programArgs.add(testFailureNames);
-//		}
-//
-//		// a testname was specified just run the single test
-//		IType[] testTypes = testSearchResult.getTypes();
-//		String testName = configuration.getAttribute(JUnitBaseLaunchConfiguration.TESTNAME_ATTR, ""); //$NON-NLS-1$
-//		if (testName.length() > 0) {
-//			programArgs.add("-test"); //$NON-NLS-1$
-//			programArgs.add(testTypes[0].getFullyQualifiedName() + ":" + testName); //$NON-NLS-1$
-//		} else {
-//			programArgs.add("-classnames"); //$NON-NLS-1$
-//			for (int i = 0; i < testTypes.length; i++)
-//				programArgs.add(testTypes[i].getFullyQualifiedName());
-//		}
-//		return (String[]) programArgs.toArray(new String[programArgs.size()]);
-//	}
-
+		return model.getPluginBase().getId();
+	}
 }
diff --git a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitTabGroup.java b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitTabGroup.java
index 14e6b90..4659aa8 100644
--- a/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitTabGroup.java
+++ b/org.eclipse.mylyn.java.ui/src/org/eclipse/mylyn/internal/java/ui/junit/MylarPdeJUnitTabGroup.java
@@ -16,8 +16,8 @@
 import org.eclipse.debug.ui.ILaunchConfigurationDialog;
 import org.eclipse.debug.ui.ILaunchConfigurationTab;
 import org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab;
+import org.eclipse.pde.internal.ui.launcher.AbstractPDELaunchConfigurationTabGroup;
 import org.eclipse.pde.ui.launcher.ConfigurationTab;
-import org.eclipse.pde.ui.launcher.JUnitTabGroup;
 import org.eclipse.pde.ui.launcher.PluginJUnitMainTab;
 import org.eclipse.pde.ui.launcher.PluginsTab;
 import org.eclipse.pde.ui.launcher.TracingTab;
@@ -27,15 +27,13 @@
  * 
  * @author Mik Kersten
  */
-public class MylarPdeJUnitTabGroup extends JUnitTabGroup {
+public class MylarPdeJUnitTabGroup extends AbstractPDELaunchConfigurationTabGroup {
 
-	@Override
 	public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
-		
 		ILaunchConfigurationTab[] tabs = null;
-		tabs = new ILaunchConfigurationTab[] {
+		tabs = new ILaunchConfigurationTab[]{
 				new MylarJUnitMainTab(true),
-//				new JUnitLaunchConfigurationTab(),
+//				new JUnitMainTab(),
 				new PluginJUnitMainTab(), 
 				new JavaArgumentsTab(),
 				new PluginsTab(false),	
@@ -44,6 +42,21 @@
 				new EnvironmentTab(), 
 				new CommonTab()};
 		setTabs(tabs);
+//		ILaunchConfigurationTab[] tabs = null;
+//		if (PDECore.getDefault().getModelManager().isOSGiRuntime()) {
+//			tabs = new ILaunchConfigurationTab[] {
+//					// new JUnitMainTab(),
+//					new MylarJUnitMainTab(true), new PluginJUnitMainTab(), new JavaArgumentsTab(),
+//					new PluginsTab(false), new ConfigurationTab(true), new TracingTab(), new EnvironmentTab(),
+//					new SourceLookupTab(), new CommonTab() };
+//		} else {
+//			tabs = new ILaunchConfigurationTab[] {
+//					// new JUnitMainTab(),
+//					new MylarJUnitMainTab(true), new PluginJUnitMainTab(), new JavaArgumentsTab(),
+//					new PluginsTab(false), new TracingTab(), new EnvironmentTab(), new SourceLookupTab(),
+//					new CommonTab() };
+//		}
+//		setTabs(tabs);
 	}
 
 }
diff --git a/org.eclipse.mylyn.team.ui/plugin.xml b/org.eclipse.mylyn.team.ui/plugin.xml
index fc7ef4f..ad425c5 100644
--- a/org.eclipse.mylyn.team.ui/plugin.xml
+++ b/org.eclipse.mylyn.team.ui/plugin.xml
@@ -154,7 +154,7 @@
 	        </action>
 		</objectContribution>
 	  -->
-	  
+	  <!--
       <objectContribution
             adaptable="false"
             id="org.eclipse.mylar.ide.team.ui.contribution.attachment.patch"
@@ -166,7 +166,7 @@
                label="Apply Patch...">
          </action>
       </objectContribution>
-      
+      -->
    </extension>
 	
   <extension point="org.eclipse.ui.preferencePages">
diff --git a/org.eclipse.mylyn.team.ui/src/org/eclipse/mylyn/internal/team/ui/actions/ApplyPatchAction.java b/org.eclipse.mylyn.team.ui/src/org/eclipse/mylyn/internal/team/ui/actions/ApplyPatchAction.java
deleted file mode 100644
index b3ceffb..0000000
--- a/org.eclipse.mylyn.team.ui/src/org/eclipse/mylyn/internal/team/ui/actions/ApplyPatchAction.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 - 2006 Mylar committers 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
- *******************************************************************************/
-
-package org.eclipse.mylar.internal.team.ui.actions;
-
-import java.io.InputStream;
-import java.io.*;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.patch.ApplyPatchOperation;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.mylar.internal.tasks.ui.ITasksUiConstants;
-import org.eclipse.mylar.tasks.core.RepositoryAttachment;
-import org.eclipse.mylar.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylar.team.MylarTeamPlugin;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Mik Kersten
- */
-public class ApplyPatchAction implements IViewActionDelegate {
-
-	private ISelection currentSelection;
-
-	public void init(IViewPart view) {
-		// ignore
-	}
-
-	public void run(IAction action) {
-		if (currentSelection instanceof StructuredSelection) {
-			Object object = ((StructuredSelection) currentSelection).getFirstElement();
-			if (object instanceof RepositoryAttachment) {
-				RepositoryAttachment attachment = (RepositoryAttachment) object;
-				final String contents = TasksUiPlugin.getRepositoryManager().getAttachmentContents(attachment);
-				if (contents == null) {
-					MessageDialog
-							.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
-									ITasksUiConstants.TITLE_DIALOG,
-									"Patch could not be retrieved. Please try re-synchronizing task in order to apply the patch.");
-				} else {
-					IStorage storage = new IStorage() {
-
-						@SuppressWarnings("deprecation")
-						public InputStream getContents() throws CoreException {
-							return new StringBufferInputStream(contents);
-						}
-
-						public IPath getFullPath() {
-							return MylarTeamPlugin.getDefault().getStateLocation();
-						}
-
-						public String getName() {
-							return null;
-						}
-
-						public boolean isReadOnly() {
-							return true;
-						}
-
-						@SuppressWarnings("unchecked")
-						public Object getAdapter(Class adapter) {
-							return null;
-						}
-
-					};
-					ApplyPatchOperation op = new ApplyPatchOperation(
-							PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart(), 
-							storage, null, new CompareConfiguration());
-					BusyIndicator.showWhile(Display.getDefault(), op);
-				}
-
-			}
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		this.currentSelection = selection;
-	}
-}