Bug 351851 - [Compatibility] we need to fix up 122 errors in our
org.eclipse.ui.tests bundle

org.eclipse.ui.tests.dynamicplugins fix
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributionRecord.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributionRecord.java
index 0152502..2ae7748 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributionRecord.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ContributionRecord.java
@@ -12,6 +12,7 @@
 package org.eclipse.e4.ui.workbench.renderers.swt;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
 import org.eclipse.core.expressions.ExpressionInfo;
@@ -47,6 +48,28 @@
 		return renderer.getManager(menuModel);
 	}
 
+	public MMenuContribution getMenuContribution() {
+		return menuContribution;
+	}
+
+	/**
+	 * Access to analyze for tests. For Looking, not touching!
+	 * 
+	 * @return the shared elements collection
+	 */
+	public Collection<MMenuElement> getSharedElements() {
+		return sharedElements;
+	}
+
+	/**
+	 * Access to analyze for tests. For Looking, not touching!
+	 * 
+	 * @return the generated elements collection
+	 */
+	public Collection<MMenuElement> getGeneratedElements() {
+		return generatedElements;
+	}
+
 	/**
 	 * @param context
 	 */
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
index 61eb80b..4a1c912 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java
@@ -734,6 +734,17 @@
 	}
 
 	/**
+	 * Search the records for testing. Look, but don't touch!
+	 * 
+	 * @return the array of active ContributionRecords.
+	 */
+	public ContributionRecord[] getContributionRecords() {
+		HashSet<ContributionRecord> records = new HashSet<ContributionRecord>(
+				modelContributionToRecord.values());
+		return records.toArray(new ContributionRecord[records.size()]);
+	}
+
+	/**
 	 * @param menuManager
 	 * @param menuModel
 	 */
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java
index 4e171cc..99d90b3 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java
@@ -12,17 +12,20 @@
 
 import java.lang.ref.ReferenceQueue;
 import java.lang.ref.WeakReference;
+import java.util.Collection;
 
 import org.eclipse.core.runtime.IRegistryChangeListener;
-
+import org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer;
+import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
+import org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord;
+import org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer;
+import org.eclipse.e4.ui.workbench.swt.factories.IRendererFactory;
 import org.eclipse.jface.action.IAction;
-
-import org.eclipse.ui.internal.PluginActionSet;
 import org.eclipse.ui.internal.WWinPluginAction;
 import org.eclipse.ui.internal.WorkbenchPlugin;
 import org.eclipse.ui.internal.WorkbenchWindow;
 import org.eclipse.ui.internal.registry.ActionSetRegistry;
-import org.eclipse.ui.internal.registry.IActionSet;
 import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
 import org.eclipse.ui.tests.leaks.LeakTests;
 
@@ -81,24 +84,50 @@
     }
 
     private void findInPresentation(WorkbenchWindow window,
-            WWinPluginAction[] action, boolean[] found) {
-        IActionSet[] sets = window.getActionPresentation().getActionSets();
+			WWinPluginAction[] action, boolean[] found) {
+		IRendererFactory factory = (IRendererFactory) window
+				.getService(IRendererFactory.class);
+		MWindow mwindow = window.getModel();
+		AbstractPartRenderer obj = factory.getRenderer(mwindow.getMainMenu(),
+				null);
+		if (!(obj instanceof MenuManagerRenderer)) {
+			return;
+		}
 
-        for (int i = 0; i < sets.length; i++) {
-            if (((PluginActionSet) sets[i]).getDesc().getId().equals(
-                "org.eclipse.newActionSet1.newActionSet2")) {
-                found[0] = true;
-                IAction[] pluginActions = ((PluginActionSet) sets[i])
-                    .getPluginActions();
-                for (int j = 0; j < pluginActions.length; j++) {
-                    if (pluginActions[j].getId().equals(
-                        "org.eclipse.ui.tests.action1"))
-                        action[0] = (WWinPluginAction) pluginActions[j];
-                }
-                break;
-            }
-        }
-    }
+		ContributionRecord[] records = ((MenuManagerRenderer) obj)
+				.getContributionRecords();
+		for (int i = 0; i < records.length; i++) {
+			ContributionRecord rec = records[i];
+			String id = rec.getMenuContribution().getElementId();
+			if (id != null
+					&& id.startsWith("org.eclipse.newActionSet1.newActionSet2")) {
+				found[0] = true;
+				Collection<MMenuElement> elements = rec.getGeneratedElements();
+				for (MMenuElement element : elements) {
+					if ("org.eclipse.ui.tests.action1".equals(element
+							.getElementId())) {
+						// FIXME return the plugin action
+						action[0] = new WWinPluginAction(null, window,
+								element.getElementId(), IAction.AS_PUSH_BUTTON);
+					}
+				}
+			}
+		}
+//		for (int i = 0; i < sets.length; i++) {
+//			if (((PluginActionSet) sets[i]).getDesc().getId()
+//					.equals("org.eclipse.newActionSet1.newActionSet2")) {
+//				found[0] = true;
+//				IAction[] pluginActions = ((PluginActionSet) sets[i])
+//						.getPluginActions();
+//				for (int j = 0; j < pluginActions.length; j++) {
+//					if (pluginActions[j].getId().equals(
+//							"org.eclipse.ui.tests.action1"))
+//						action[0] = (WWinPluginAction) pluginActions[j];
+//				}
+//				break;
+//			}
+//		}
+	}
 
     /**
      * @return
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java
index 5c0f90f..52c0816 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java
@@ -10,12 +10,14 @@
  *******************************************************************************/
 package org.eclipse.ui.tests.dynamicplugins;
 
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
 import org.eclipse.ui.IPerspectiveDescriptor;
 import org.eclipse.ui.IPerspectiveRegistry;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPage;
+import org.eclipse.ui.internal.WorkbenchWindow;
 import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
 
 /**
@@ -64,8 +66,10 @@
 		window.getActivePage().setPerspective(desc);
 
 		removeBundle();
-		assertNull(((WorkbenchPage) window.getActivePage())
-				.findPerspective(desc));
+		MPerspective persp = findPerspective(window, desc.getId());
+		assertNull(persp);
+		
+
 		assertFalse(window.getActivePage().getPerspective().getId().equals(
 				desc.getId()));
 		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, window.getActivePage()
@@ -89,14 +93,21 @@
 				reg.findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID));
 
 		removeBundle();
-		assertNull(((WorkbenchPage) window.getActivePage())
-				.findPerspective(desc));
+		MPerspective persp = findPerspective(window, PERSPECTIVE_ID);
+		assertNull(persp);
 
-		assertFalse(window.getActivePage().getPerspective().getId().equals(
-				PERSPECTIVE_ID));
+		assertFalse(window.getActivePage().getPerspective().getId()
+				.equals(PERSPECTIVE_ID));
 		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, window.getActivePage()
 				.getPerspective().getId());
 	}
+	
+	private MPerspective findPerspective(IWorkbenchWindow window, String id) {
+		EModelService modelService = (EModelService) window
+				.getService(EModelService.class);
+		return (MPerspective) modelService.find(id,
+				((WorkbenchWindow) window).getModel());
+	}
 
 	/*
 	 * (non-Javadoc)