Bug 551728: Move org.eclipse.jdt.junit.runtime to 1.5

Change-Id: Iff67c8fa0fef6b1c6c4070d8dff9684c628e40e5
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/CustomHashtable.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/CustomHashtable.java
index a2a5dff..a6d305d 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/CustomHashtable.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/CustomHashtable.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -39,6 +39,7 @@
 			value= theValue;
 		}
 
+		@Override
 		public String toString() {
 			StringBuffer buffer= new StringBuffer();
 			appendToStringWithCommaNL(buffer);
@@ -61,7 +62,7 @@
 		}
 	}
 
-	private static final class EmptyEnumerator implements Enumeration {
+	private static final class EmptyEnumerator implements Enumeration<Object> {
 
 		public boolean hasMoreElements() {
 			return false;
@@ -72,7 +73,7 @@
 		}
 	}
 
-	private class HashEnumerator implements Enumeration {
+	private class HashEnumerator implements Enumeration<Object> {
 
 		boolean key;
 
@@ -221,7 +222,7 @@
 	 *
 	 * @return an Enumeration of the values of this Hashtable
 	 */
-	public Enumeration elements() {
+	public Enumeration<?> elements() {
 		if (elementCount == 0)
 			return emptyEnumerator;
 		return new HashEnumerator(false);
@@ -308,7 +309,7 @@
 	 *
 	 * @return an Enumeration of the keys of this Hashtable
 	 */
-	public Enumeration keys() {
+	public Enumeration<?> keys() {
 		if (elementCount == 0)
 			return emptyEnumerator;
 		return new HashEnumerator(true);
@@ -422,6 +423,7 @@
 	 *
 	 * @return the string representation of this Hashtable
 	 */
+	@Override
 	public String toString() {
 		if (size() == 0)
 			return "{}"; //$NON-NLS-1$
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/FailuresFirstPrioritizer.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/FailuresFirstPrioritizer.java
index 5b26f5f..e63fbae 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/FailuresFirstPrioritizer.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/FailuresFirstPrioritizer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -29,18 +29,18 @@
 import junit.framework.TestSuite;
 
 public class FailuresFirstPrioritizer implements ITestPrioritizer {
-	private HashSet fPriorities;
+	private HashSet<String> fPriorities;
 
 	public FailuresFirstPrioritizer(String[] priorities) {
-		fPriorities= new HashSet(Arrays.asList(priorities));
+		fPriorities= new HashSet<String>(Arrays.asList(priorities));
 	}
 
 	public Test prioritize(Test suite) {
-		doPrioritize(suite, new ArrayList());
+		doPrioritize(suite, new ArrayList<Test>());
 		return suite;
 	}
 
-	private void doPrioritize(Test suite, List path) {
+	private void doPrioritize(Test suite, List<Test> path) {
 		if (suite instanceof TestCase) {
 			TestCase testCase= (TestCase) suite;
 			if (hasPriority(testCase))
@@ -58,21 +58,21 @@
 		}
 	}
 
-	private void loopTests(List path, TestSuite aSuite) {
-		for (Enumeration e= aSuite.tests(); e.hasMoreElements();) {
-			doPrioritize((Test)e.nextElement(), path);
+	private void loopTests(List<Test> path, TestSuite aSuite) {
+		for (Enumeration<Test> e= aSuite.tests(); e.hasMoreElements();) {
+			doPrioritize(e.nextElement(), path);
 		}
 	}
 
 
-	private void reorder(Test test, List path) {
+	private void reorder(Test test, List<Test> path) {
 		doReorder(test, path, path.size()-1);
 	}
 
-	private void doReorder(Test test, List path, int top) {
+	private void doReorder(Test test, List<Test> path, int top) {
 		if (top < 0)
 			return;
-		Test topTest= (Test) path.get(top);
+		Test topTest= path.get(top);
 		// only reorder TestSuites
 		if (topTest instanceof TestSuite) {
 			TestSuite suite= (TestSuite) topTest;
@@ -82,7 +82,8 @@
 	}
 
 	void moveTestToFront(TestSuite suite, Test test) {
-		Vector tests= (Vector)getField(suite, "fTests"); //$NON-NLS-1$
+		@SuppressWarnings("unchecked")
+		Vector<Test> tests= (Vector<Test>)getField(suite, "fTests"); //$NON-NLS-1$
 		for(int i= 0; i < tests.size(); i++) {
 			if (tests.get(i) == test) {
 				tests.remove(i);
@@ -100,7 +101,7 @@
 	    return getFieldInClass(object, fieldName, object.getClass());
 	}
 
-	private static Object getFieldInClass(Object object, String fieldName, Class clazz) {
+	private static Object getFieldInClass(Object object, String fieldName, Class<?> clazz) {
 		Field field= null;
 		if (clazz == null)
 			return null;
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/ITestLoader.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/ITestLoader.java
index b289271..4735476 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/ITestLoader.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/ITestLoader.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -27,6 +27,6 @@
 	 * @param listener to be notified if tests could not be loaded
 	 * @return the loaded test references
 	 */
-	public abstract ITestReference[] loadTests(Class[] testClasses, String testName, String[] failureNames, String[] packages, String[][] includeExcludeTags, String uniqueId, RemoteTestRunner listener);
+	public abstract ITestReference[] loadTests(Class<?>[] testClasses, String testName, String[] failureNames, String[] packages, String[][] includeExcludeTags, String uniqueId, RemoteTestRunner listener);
 }
 
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
index ab61086..6c322d3 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -118,7 +118,7 @@
 	/**
 	 * Queue of rerun requests.
 	 */
-	private Vector fRerunRequests= new Vector(10);
+	private Vector<RerunRequest> fRerunRequests= new Vector<RerunRequest>(10);
 	/**
 	 * Thread reading from the socket
 	 */
@@ -144,6 +144,7 @@
 			super("ReaderThread"); //$NON-NLS-1$
 		}
 
+		@Override
 		public void run(){
 			try {
 				String message= null;
@@ -240,13 +241,13 @@
 	protected final void defaultInit(String[] args) {
 		for(int i= 0; i < args.length; i++) {
 			if(args[i].toLowerCase().equals("-classnames") || args[i].toLowerCase().equals("-classname")){ //$NON-NLS-1$ //$NON-NLS-2$
-				Vector list= new Vector();
+				Vector<String> list= new Vector<String>();
 				for (int j= i+1; j < args.length; j++) {
 					if (args[j].startsWith("-")) //$NON-NLS-1$
 						break;
 					list.add(args[j]);
 				}
-				fTestClassNames= (String[]) list.toArray(new String[list.size()]);
+				fTestClassNames= list.toArray(new String[list.size()]);
 			}
 			else if(args[i].toLowerCase().equals("-test")) { //$NON-NLS-1$
 				String testName= args[i+1];
@@ -376,7 +377,7 @@
 		}
 	}
 
-	protected Class loadTestLoaderClass(String className) throws ClassNotFoundException {
+	protected Class<?> loadTestLoaderClass(String className) throws ClassNotFoundException {
 		return Class.forName(className);
 	}
 
@@ -388,11 +389,11 @@
 		BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(new File(pkgNameFile)), "UTF-8")); //$NON-NLS-1$
 		try {
 			String line;
-			Vector list= new Vector();
+			Vector<String> list= new Vector<String>();
 			while ((line= br.readLine()) != null) {
 				list.add(line);
 			}
-			fPackageNames= (String[]) list.toArray(new String[list.size()]);
+			fPackageNames= list.toArray(new String[list.size()]);
 		}
 		finally {
 			br.close();
@@ -409,11 +410,11 @@
 		BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(new File(testNameFile)), "UTF-8")); //$NON-NLS-1$
 		try {
 			String line;
-			Vector list= new Vector();
+			Vector<String> list= new Vector<String>();
 			while ((line= br.readLine()) != null) {
 				list.add(line);
 			}
-			fTestClassNames= (String[]) list.toArray(new String[list.size()]);
+			fTestClassNames= list.toArray(new String[list.size()]);
 		}
 		finally {
 			br.close();
@@ -430,11 +431,11 @@
 		BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(new File(testFailureFile)), "UTF-8")); //$NON-NLS-1$
 		try {
 			String line;
-			Vector list= new Vector();
+			Vector<String> list= new Vector<String>();
 			while ((line= br.readLine()) != null) {
 				list.add(line);
 			}
-			fFailureNames= (String[]) list.toArray(new String[list.size()]);
+			fFailureNames= list.toArray(new String[list.size()]);
 		}
 		finally {
 			br.close();
@@ -480,7 +481,7 @@
 			try {
 				wait();
 				if (!fStopped && fRerunRequests.size() > 0) {
-					RerunRequest r= (RerunRequest)fRerunRequests.remove(0);
+					RerunRequest r= fRerunRequests.remove(0);
 					rerunTest(r);
 				}
 			} catch (InterruptedException e) {
@@ -495,16 +496,16 @@
 			exception.printStackTrace(System.err);
 	}
 
-	protected Class[] loadClasses(String[] testClassNames) {
-		Vector classes= new Vector();
+	protected Class<?>[] loadClasses(String[] testClassNames) {
+		Vector<Class<?>> classes= new Vector<Class<?>>();
 		for (int i = 0; i < testClassNames.length; i++) {
 			String name = testClassNames[i];
-			Class clazz = loadClass(name, this);
+			Class<?> clazz = loadClass(name, this);
 			if (clazz != null) {
 				classes.add(clazz);
 			}
 		}
-		return (Class[]) classes.toArray(new Class[classes.size()]);
+		return classes.toArray(new Class[classes.size()]);
 	}
 
 	protected void notifyListenersOfTestEnd(TestExecution execution,
@@ -569,7 +570,7 @@
 	 * @param r rerun request
 	 */
 	public void rerunTest(RerunRequest r) {
-		final Class[] classes= loadClasses(new String[] { r.fRerunClassName });
+		final Class<?>[] classes= loadClasses(new String[] { r.fRerunClassName });
 		ITestReference rerunTest1= fLoader.loadTests(classes, r.fRerunTestName, null, null, fIncludeExcludeTags, fUniqueId, this)[0];
 		RerunExecutionListener service= rerunExecutionListener();
 
@@ -767,8 +768,8 @@
 		return fLoader;
 	}
 
-	public Class loadClass(String className, RemoteTestRunner listener) {
-		Class clazz= null;
+	public Class<?> loadClass(String className, RemoteTestRunner listener) {
+		Class<?> clazz= null;
 		try {
 			clazz= getTestClassLoader().loadClass(className);
 		} catch (ClassNotFoundException e) {
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RerunExecutionListener.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RerunExecutionListener.java
index debdc20..7977e0f 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RerunExecutionListener.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RerunExecutionListener.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -26,6 +26,7 @@
 
 	private String fStatus = RemoteTestRunner.RERAN_OK;
 
+	@Override
 	public void notifyTestFailed(TestReferenceFailure failure) {
 		sendFailure(failure, MessageIds.RTRACE_START, MessageIds.RTRACE_END);
 
@@ -38,10 +39,12 @@
 			throw new IllegalArgumentException(status);
 	}
 
+	@Override
 	public void notifyTestStarted(ITestIdentifier test) {
 		// do nothing
 	}
 
+	@Override
 	public void notifyTestEnded(ITestIdentifier test) {
 		// do nothing
 	}
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestExecution.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestExecution.java
index 8aeb6af..417837c 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestExecution.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestExecution.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -26,7 +26,7 @@
 
 	private IClassifiesThrowables fClassifier;
 
-	private ArrayList fStopListeners = new ArrayList();
+	private ArrayList<IStopListener> fStopListeners = new ArrayList<IStopListener>();
 
 	public TestExecution(IListensToTestExecutions listener,
 			IClassifiesThrowables classifier) {
@@ -48,8 +48,8 @@
 
 	public void stop() {
 		fShouldStop = true;
-		for (Iterator iter = fStopListeners.iterator(); iter.hasNext();) {
-			IStopListener listener = (IStopListener) iter.next();
+		for (Iterator<IStopListener> iter = fStopListeners.iterator(); iter.hasNext();) {
+			IStopListener listener = iter.next();
 			listener.stop();
 		}
 	}
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestIdMap.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestIdMap.java
index d33ee1f..3bfcb41 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestIdMap.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestIdMap.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -19,7 +19,7 @@
 import java.util.HashMap;
 
 public class TestIdMap {
-	private HashMap fIdMap= new HashMap();
+	private HashMap<ITestIdentifier, String> fIdMap= new HashMap<ITestIdentifier, String>();
 
 	private int fNextId= 1;
 
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestReferenceFailure.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestReferenceFailure.java
index 3899e95..395deda 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestReferenceFailure.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/TestReferenceFailure.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -57,6 +57,7 @@
 		return fTest;
 	}
 
+	@Override
 	public String toString() {
 		return fStatus + " " + RemoteTestRunner.escapeText(fTest.getName())  //$NON-NLS-1$
 			+ " " + RemoteTestRunner.escapeText(fTest.getParameterTypes()); //$NON-NLS-1$ 
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3Identifier.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3Identifier.java
index cfb415d..2c56808 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3Identifier.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3Identifier.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -32,11 +32,13 @@
 		return ref.getName();
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		JUnit3Identifier id = (JUnit3Identifier) obj;
 		return ref.equals(id.ref);
 	}
 
+	@Override
 	public int hashCode() {
 		return ref.hashCode();
 	}
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestLoader.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestLoader.java
index 347afc8..39b3a4b 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestLoader.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestLoader.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -39,7 +39,7 @@
 
 	// WANT: give test loaders a schema
 
-	public ITestReference[] loadTests(Class[] testClasses, String testName, String[] failureNames, String[] packages, String[][] includeExcludeTags, String uniqueId, RemoteTestRunner listener) {
+	public ITestReference[] loadTests(Class<?>[] testClasses, String testName, String[] failureNames, String[] packages, String[][] includeExcludeTags, String uniqueId, RemoteTestRunner listener) {
 		// instantiate all tests
 		ITestReference[] suites= new ITestReference[testClasses.length];
 		ITestPrioritizer prioritizer;
@@ -50,7 +50,7 @@
 			prioritizer= new NullPrioritizer();
 
 		for (int i= 0; i < suites.length; i++) {
-			Class testClassName= testClasses[i];
+			Class<?> testClassName= testClasses[i];
 			Test test= getTest(testClassName, testName, listener);
 			prioritizer.prioritize(test);
 			suites[i]= new JUnit3TestReference(test);
@@ -59,10 +59,10 @@
 		return suites;
 	}
 
-	private Test createTest(String testName, Class testClass) {
-		Class[] classArgs= { String.class };
+	private Test createTest(String testName, Class<?> testClass) {
+		Class<?>[] classArgs= { String.class };
 		Test test;
-		Constructor constructor= null;
+		Constructor<?> constructor= null;
 		try {
 			try {
 				constructor= testClass.getConstructor(classArgs);
@@ -85,7 +85,7 @@
 		return error(testName, "Could not create test \'" + testName + "\' "); //$NON-NLS-1$ //$NON-NLS-2$
 	}
 
-	public Test getTest(Class testClass, String testName, RemoteTestRunner failureListener) {
+	public Test getTest(Class<?> testClass, String testName, RemoteTestRunner failureListener) {
 		if (testName != null) {
 			return setupTest(testClass, createTest(testName, testClass), testName);
 		}
@@ -100,7 +100,7 @@
 			return error(JUnitMessages.getString("RemoteTestRunner.error"), JUnitMessages.getString("RemoteTestRunner.error.suite.notstatic"));//$NON-NLS-1$ //$NON-NLS-2$
 		}
 		try {
-			Test test= (Test) suiteMethod.invoke(null, new Class[0]); // static
+			Test test= (Test) suiteMethod.invoke(null, new Object[0]); // static
 			if (test != null) {
 				return test;
 			}
@@ -129,7 +129,7 @@
 	 * @param testName test name
 	 * @return the reloaded test, or the test wrapped with setUpTest(..) if available
 	 */
-	private Test setupTest(Class reloadedTestClass, Test reloadedTest, String testName) {
+	private Test setupTest(Class<?> reloadedTestClass, Test reloadedTest, String testName) {
 		if (reloadedTestClass == null)
 			return reloadedTest;
 
@@ -168,6 +168,7 @@
 	 */
 	private Test error(String testName, final String message) {
 		return new TestCase(testName) {
+			@Override
 			protected void runTest() {
 				fail(message);
 			}
diff --git a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestReference.java b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestReference.java
index 64e9931..0674301 100644
--- a/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestReference.java
+++ b/org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestReference.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -47,7 +47,7 @@
 	private final Test fTest;
 
 	public static Object getField(Object object, String fieldName) {
-		Class clazz= object.getClass();
+		Class<? extends Object> clazz= object.getClass();
 		try {
 			Field field= clazz.getDeclaredField(fieldName);
 			field.setAccessible(true);
@@ -68,6 +68,7 @@
 		return fTest.countTestCases();
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (! (obj instanceof JUnit3TestReference))
 			return false;
@@ -76,6 +77,7 @@
 		return ref.fTest.equals(fTest);
 	}
 
+	@Override
 	public int hashCode() {
 		return fTest.hashCode();
 	}
@@ -84,11 +86,11 @@
 		if (isJUnit4TestCaseAdapter(fTest)) {
 			Method method= (Method) callJUnit4GetterMethod(fTest, "getTestMethod"); //$NON-NLS-1$
 			return MessageFormat.format(
-					MessageIds.TEST_IDENTIFIER_MESSAGE_FORMAT, new String[] { method.getName(), method.getDeclaringClass().getName() });
+					MessageIds.TEST_IDENTIFIER_MESSAGE_FORMAT, new Object[] { method.getName(), method.getDeclaringClass().getName() });
 		}
 		if (fTest instanceof TestCase) {
 			TestCase testCase= (TestCase) fTest;
-			return MessageFormat.format(MessageIds.TEST_IDENTIFIER_MESSAGE_FORMAT, new String[] { testCase.getName(), fTest.getClass().getName() });
+			return MessageFormat.format(MessageIds.TEST_IDENTIFIER_MESSAGE_FORMAT, new Object[] { testCase.getName(), fTest.getClass().getName() });
 		}
 		if (fTest instanceof TestSuite) {
 			TestSuite suite= (TestSuite) fTest;
@@ -101,7 +103,7 @@
 			return decorator.getClass().getName();
 		}
 		if (isJUnit4TestSuiteAdapter(fTest)) {
-			Class testClass= (Class) callJUnit4GetterMethod(fTest, "getTestClass"); //$NON-NLS-1$
+			Class<?> testClass= (Class<?>) callJUnit4GetterMethod(fTest, "getTestClass"); //$NON-NLS-1$
 			return testClass.getName();
 		}
 		return fTest.toString();
@@ -136,9 +138,9 @@
 				sendTreeOfChild(suite.testAt(i), notified);
 			}
 		} else if (isJUnit4TestSuiteAdapter(fTest)) {
-			List tests= (List) callJUnit4GetterMethod(fTest, "getTests"); //$NON-NLS-1$
+			List<?> tests= (List<?>) callJUnit4GetterMethod(fTest, "getTests"); //$NON-NLS-1$
 			notified.visitTreeEntry(getIdentifier(), true, tests.size(), false, "-1"); //$NON-NLS-1$
-			for (Iterator iter= tests.iterator(); iter.hasNext();) {
+			for (Iterator<?> iter= tests.iterator(); iter.hasNext();) {
 				sendTreeOfChild((Test) iter.next(), notified);
 			}
 		} else {
diff --git a/org.eclipse.jdt.junit4.runtime/META-INF/MANIFEST.MF b/org.eclipse.jdt.junit4.runtime/META-INF/MANIFEST.MF
index fce16bb..dae0ed6 100644
--- a/org.eclipse.jdt.junit4.runtime/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.junit4.runtime/META-INF/MANIFEST.MF
@@ -4,9 +4,9 @@
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-SymbolicName: org.eclipse.jdt.junit4.runtime;singleton:=true
-Bundle-Version: 1.1.1000.qualifier
+Bundle-Version: 1.1.1100.qualifier
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jdt.internal.junit4.runner;x-internal:=true
 Require-Bundle: org.junit;bundle-version="4.7.0",
- org.eclipse.jdt.junit.runtime;bundle-version="[3.4.200,4.0.0)"
+ org.eclipse.jdt.junit.runtime;bundle-version="[3.5.0,4.0.0)"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/org.eclipse.jdt.junit4.runtime/pom.xml b/org.eclipse.jdt.junit4.runtime/pom.xml
index 0c24048..1410828 100644
--- a/org.eclipse.jdt.junit4.runtime/pom.xml
+++ b/org.eclipse.jdt.junit4.runtime/pom.xml
@@ -18,6 +18,6 @@
   </parent>
   <groupId>org.eclipse.jdt</groupId>
   <artifactId>org.eclipse.jdt.junit4.runtime</artifactId>
-  <version>1.1.1000-SNAPSHOT</version>
+  <version>1.1.1100-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/org.eclipse.jdt.junit4.runtime/src/org/eclipse/jdt/internal/junit4/runner/JUnit4TestLoader.java b/org.eclipse.jdt.junit4.runtime/src/org/eclipse/jdt/internal/junit4/runner/JUnit4TestLoader.java
index f59dbd3..b73811a 100644
--- a/org.eclipse.jdt.junit4.runtime/src/org/eclipse/jdt/internal/junit4/runner/JUnit4TestLoader.java
+++ b/org.eclipse.jdt.junit4.runtime/src/org/eclipse/jdt/internal/junit4/runner/JUnit4TestLoader.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -35,7 +35,7 @@
 public class JUnit4TestLoader implements ITestLoader {
 
 	public ITestReference[] loadTests(
-			Class[] testClasses,
+			Class<?>[] testClasses,
 			String testName,
 			String[] failureNames,
 			String[] packages,
diff --git a/org.eclipse.jdt.junit5.runtime/META-INF/MANIFEST.MF b/org.eclipse.jdt.junit5.runtime/META-INF/MANIFEST.MF
index f7f933f..19aca54 100644
--- a/org.eclipse.jdt.junit5.runtime/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.junit5.runtime/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@
 Bundle-Version: 1.0.700.qualifier
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jdt.internal.junit5.runner;x-internal:=true
-Require-Bundle: org.eclipse.jdt.junit.runtime;bundle-version="[3.4.600,4.0.0)",
+Require-Bundle: org.eclipse.jdt.junit.runtime;bundle-version="[3.5.0,4.0.0)",
  org.junit.jupiter.api;bundle-version="5.4.0",
  org.junit.jupiter.engine;bundle-version="5.4.0",
  org.junit.jupiter.migrationsupport;bundle-version="5.4.0",
diff --git a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java
index e330446..7ae4068 100644
--- a/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java
+++ b/org.eclipse.jdt.junit5.runtime/src/org/eclipse/jdt/internal/junit5/runner/JUnit5TestLoader.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2016, 2017 IBM Corporation and others.
+ * Copyright (c) 2016, 2019 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -36,7 +36,7 @@
 	private RemoteTestRunner fRemoteTestRunner;
 
 	@Override
-	public ITestReference[] loadTests(Class[] testClasses, String testName, String[] failureNames, String[] packages, String[][] includeExcludeTags, String uniqueId, RemoteTestRunner listener) {
+	public ITestReference[] loadTests(Class<?>[] testClasses, String testName, String[] failureNames, String[] packages, String[][] includeExcludeTags, String uniqueId, RemoteTestRunner listener) {
 		fRemoteTestRunner= listener;
 		ITestReference[] refs= new ITestReference[0];
 		if (uniqueId != null && !uniqueId.trim().isEmpty()) {