Bug 578601 - Use more JUnit-4 test suites and unify suites

Change-Id: I2114517b114aa149ac41876f391894c3b53ffb8f
Signed-off-by: Hannes Wellmann <wellmann.hannes1@gmx.net>
Reviewed-on: https://git.eclipse.org/r/c/equinox/rt.equinox.framework/+/190492
Tested-by: Equinox Bot <equinox-bot@eclipse.org>
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllExtendedLogServiceTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllExtendedLogServiceTests.java
index e9f4c1b..66f75b9 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllExtendedLogServiceTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllExtendedLogServiceTests.java
@@ -14,6 +14,9 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ ExtendedLogServiceTest.class, ExtendedLogReaderServiceTest.class })
+@Suite.SuiteClasses({ //
+		ExtendedLogServiceTest.class, //
+		ExtendedLogReaderServiceTest.class //
+})
 public class AllExtendedLogServiceTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllLogServiceTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllLogServiceTests.java
index f0e6e53..966563e 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllLogServiceTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllLogServiceTests.java
@@ -14,6 +14,10 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ LogServiceTest.class, LogReaderServiceTest.class, LogPermissionCollectionTest.class })
+@Suite.SuiteClasses({ //
+	LogServiceTest.class, //
+	LogReaderServiceTest.class, //
+	LogPermissionCollectionTest.class //
+	})
 public class AllLogServiceTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllTests.java
index c2cf593..981fefc 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/equinox/log/test/AllTests.java
@@ -17,6 +17,9 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({AllLogServiceTests.class, AllExtendedLogServiceTests.class})
+@Suite.SuiteClasses({ //
+		AllLogServiceTests.class, //
+		AllExtendedLogServiceTests.class //
+})
 public class AllTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/AutomatedTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/AutomatedTests.java
index 41532b5..b0110f8 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/AutomatedTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/AutomatedTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2021 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,34 +13,34 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests;
 
-import org.eclipse.osgi.tests.bundles.BundleTests;
-import org.eclipse.osgi.tests.debugoptions.DebugOptionsTestCase;
-import org.eclipse.osgi.tests.eventmgr.EventManagerTests;
-import org.eclipse.osgi.tests.filter.BundleContextFilterTests;
-import org.eclipse.osgi.tests.filter.FrameworkUtilFilterTests;
-import org.eclipse.osgi.tests.hooks.framework.AllFrameworkHookTests;
-import org.eclipse.osgi.tests.internal.plugins.InstallTests;
-import org.eclipse.osgi.tests.listeners.ExceptionHandlerTests;
-import org.eclipse.osgi.tests.misc.MiscTests;
-import org.eclipse.osgi.tests.permissions.AdminPermissionTests;
-import org.eclipse.osgi.tests.permissions.PackagePermissionTests;
-import org.eclipse.osgi.tests.permissions.ServicePermissionTests;
-import org.eclipse.osgi.tests.serviceregistry.ServiceRegistryTests;
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ org.eclipse.osgi.tests.container.AllTests.class, AllFrameworkHookTests.class, InstallTests.class,
-		org.eclipse.osgi.tests.eclipseadaptor.AllTests.class, org.eclipse.osgi.tests.services.resolver.AllTests.class,
-		DebugOptionsTestCase.class, org.eclipse.equinox.log.test.AllTests.class,
-		org.eclipse.osgi.tests.security.SecurityTestSuite.class, org.eclipse.osgi.tests.appadmin.AllTests.class,
-		ExceptionHandlerTests.class, org.eclipse.osgi.tests.configuration.AllTests.class,
-		org.eclipse.osgi.tests.services.datalocation.AllTests.class, org.eclipse.osgi.tests.util.AllTests.class,
-		MiscTests.class, BundleTests.class, ServiceRegistryTests.class, EventManagerTests.class,
-		BundleContextFilterTests.class, FrameworkUtilFilterTests.class, AdminPermissionTests.class,
-		ServicePermissionTests.class, PackagePermissionTests.class,
-		org.eclipse.osgi.tests.securityadmin.AllSecurityAdminTests.class,
-		org.eclipse.osgi.tests.resource.AllTests.class, org.eclipse.osgi.tests.url.AllTests.class })
-
+@Suite.SuiteClasses({
+		org.eclipse.osgi.tests.container.AllTests.class, //
+		org.eclipse.osgi.tests.hooks.framework.AllFrameworkHookTests.class, //
+		org.eclipse.osgi.tests.internal.plugins.InstallTests.class, //
+		org.eclipse.osgi.tests.eclipseadaptor.AllTests.class, //
+		org.eclipse.osgi.tests.services.resolver.AllTests.class, //
+		org.eclipse.osgi.tests.debugoptions.DebugOptionsTestCase.class, //
+		org.eclipse.equinox.log.test.AllTests.class, //
+		org.eclipse.osgi.tests.security.SecurityTestSuite.class, //
+		org.eclipse.osgi.tests.appadmin.AllTests.class, //
+		org.eclipse.osgi.tests.listeners.ExceptionHandlerTests.class, //
+		org.eclipse.osgi.tests.configuration.AllTests.class, //
+		org.eclipse.osgi.tests.services.datalocation.AllTests.class, //
+		org.eclipse.osgi.tests.util.AllTests.class, //
+		org.eclipse.osgi.tests.misc.MiscTests.class, //
+		org.eclipse.osgi.tests.bundles.BundleTests.class, //
+		org.eclipse.osgi.tests.serviceregistry.AllTests.class, //
+		org.eclipse.osgi.tests.eventmgr.EventManagerTests.class, //
+		org.eclipse.osgi.tests.filter.BundleContextFilterTests.class, //
+		org.eclipse.osgi.tests.filter.FrameworkUtilFilterTests.class, //
+		org.eclipse.osgi.tests.permissions.AllTests.class, //
+		org.eclipse.osgi.tests.securityadmin.AllSecurityAdminTests.class, //
+		org.eclipse.osgi.tests.resource.AllTests.class, //
+		org.eclipse.osgi.tests.url.AllTests.class 
+		})
 public class AutomatedTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/appadmin/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/appadmin/AllTests.java
index 66f8ca6..c695521 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/appadmin/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/appadmin/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,14 +13,13 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.appadmin;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		ApplicationAdminTest.class, //
+		ApplicationRelaunchTest.class //
+})
 public class AllTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTest(ApplicationAdminTest.suite());
-		suite.addTest(ApplicationRelaunchTest.suite());
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AddDynamicImportTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AddDynamicImportTests.java
index 447cae9..004df46 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AddDynamicImportTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AddDynamicImportTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2018, 2020 IBM Corporation and others.
+ * Copyright (c) 2018, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -23,8 +23,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.BiConsumer;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.container.Module;
 import org.eclipse.osgi.internal.framework.EquinoxConfiguration;
 import org.eclipse.osgi.internal.loader.BundleLoader;
@@ -41,12 +39,6 @@
 
 public class AddDynamicImportTests extends AbstractBundleTests {
 
-
-	public static Test suite() {
-		return new TestSuite(AddDynamicImportTests.class);
-	}
-
-
 	public void testAddDynamicImportMultipleTimes() throws Exception {
 		runTest((a, b) -> {
 			for (int i = 0; i < 1000; i++) {
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleExceptionTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleExceptionTests.java
index 0d7dcfc..2f1cdfa 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleExceptionTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleExceptionTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2015 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -15,16 +15,11 @@
 
 import java.io.IOException;
 import java.net.URL;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
 
 public class BundleExceptionTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(BundleExceptionTests.class);
-	}
 
 	// test throwing exception from activator constructor
 	public void testInvalidBundleActivator01() throws BundleException {
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleInstallUpdateTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleInstallUpdateTests.java
index b7ef71e..e68bb83 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleInstallUpdateTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleInstallUpdateTests.java
@@ -26,8 +26,6 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.osgi.service.urlconversion.URLConverter;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
@@ -40,9 +38,6 @@
 import org.osgi.framework.wiring.BundleWiring;
 
 public class BundleInstallUpdateTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(BundleInstallUpdateTests.class);
-	}
 
 	// test installing with location
 	public void testInstallWithLocation01() {
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleResourceTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleResourceTests.java
index c709610..1ced085 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleResourceTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleResourceTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2013 IBM Corporation and others.
+ * Copyright (c) 2010, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -15,8 +15,6 @@
 
 import java.net.URL;
 import java.util.Enumeration;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.tests.harness.CoreTest;
 import org.eclipse.osgi.service.environment.EnvironmentInfo;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
@@ -40,10 +38,6 @@
 		installer.shutdown();
 	}
 
-	public static Test suite() {
-		return new TestSuite(BundleResourceTests.class);
-	}
-
 	public void testBug320546_01() throws Exception {
 		Bundle bundle = installer.installBundle("test"); //$NON-NLS-1$
 		URL result = bundle.getEntry("../../../../security");
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleTests.java
index 747dce9..9fd972e 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/BundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2020 IBM Corporation and others.
+ * Copyright (c) 2006, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,33 +13,32 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.bundles;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		ConnectTests.class, //
+		ExceptionMessageTest.class, //
+		ImportJavaSEPackagesTests.class, //
+		MultiReleaseJarTests.class, //
+		URLHandlerTests.class, //
+		PersistedBundleTests.class, //
+		CascadeConfigTests.class, //
+		DiscardBundleTests.class, //
+		LoggingTests.class, //
+		BundleResourceTests.class, //
+		BundleInstallUpdateTests.class, //
+		SystemBundleTests.class, //
+		BundleExceptionTests.class, //
+		SubstituteExportsBundleTests.class, //
+		PackageAdminBundleTests.class, //
+		ExtensionBundleTests.class, //
+		ClassLoadingBundleTests.class, //
+		NativeCodeBundleTests.class, //
+		PlatformAdminBundleTests.class, //
+		ListenerTests.class, //
+		AddDynamicImportTests.class //
+})
 public class BundleTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(BundleTests.class.getName());
-		suite.addTest(ConnectTests.suite());
-		suite.addTest(ExceptionMessageTest.suite());
-		suite.addTest(ImportJavaSEPackagesTests.suite());
-		suite.addTest(MultiReleaseJarTests.suite());
-		suite.addTest(URLHandlerTests.suite());
-		suite.addTest(PersistedBundleTests.suite());
-		suite.addTest(CascadeConfigTests.suite());
-		suite.addTest(DiscardBundleTests.suite());
-		suite.addTest(LoggingTests.suite());
-		suite.addTest(BundleResourceTests.suite());
-		suite.addTest(BundleInstallUpdateTests.suite());
-		suite.addTest(SystemBundleTests.suite());
-		suite.addTest(BundleExceptionTests.suite());
-		suite.addTest(SubstituteExportsBundleTests.suite());
-		suite.addTest(PackageAdminBundleTests.suite());
-		suite.addTest(ExtensionBundleTests.suite());
-		suite.addTest(ClassLoadingBundleTests.suite());
-		suite.addTest(NativeCodeBundleTests.suite());
-		suite.addTest(PlatformAdminBundleTests.suite());
-		suite.addTest(ListenerTests.suite());
-		suite.addTest(AddDynamicImportTests.suite());
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/CascadeConfigTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/CascadeConfigTests.java
index dc7d060..58413eb 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/CascadeConfigTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/CascadeConfigTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2020 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -19,8 +19,6 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.osgi.framework.Bundle;
@@ -30,9 +28,6 @@
 import org.osgi.framework.wiring.FrameworkWiring;
 
 public class CascadeConfigTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(CascadeConfigTests.class);
-	}
 
 	public void testCascadeConfigBundleInstall() throws Exception {
 		// First create a framework with the 'parent' configuration
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
index ad54dac..aee88b8 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
@@ -43,8 +43,6 @@
 import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.internal.loader.BundleLoader;
 import org.eclipse.osgi.internal.loader.ModuleClassLoader;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
@@ -75,9 +73,6 @@
 import org.osgi.service.startlevel.StartLevel;
 
 public class ClassLoadingBundleTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(ClassLoadingBundleTests.class);
-	}
 
 	public void testSimple() throws Exception {
 		Bundle test = installer.installBundle("test"); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ConnectTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ConnectTests.java
index afd38db..4c257fa 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ConnectTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ConnectTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2019, 2021 IBM Corporation and others.
+ * Copyright (c) 2019, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -46,9 +46,7 @@
 import java.util.function.Consumer;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
-import junit.framework.Test;
 import junit.framework.TestCase;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.container.ModuleContainer;
 import org.eclipse.osgi.internal.hookregistry.HookRegistry;
 import org.eclipse.osgi.launch.EquinoxFactory;
@@ -80,10 +78,6 @@
 
 public class ConnectTests extends AbstractBundleTests {
 
-	public static Test suite() {
-		return new TestSuite(ConnectTests.class);
-	}
-
 	void cleanStorage() {
 		delete(getContext().getDataFile(getName()));
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/DiscardBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/DiscardBundleTests.java
index f431426..cb939eb 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/DiscardBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/DiscardBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013, 2020 IBM Corporation and others.
+ * Copyright (c) 2013, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -20,8 +20,6 @@
 import java.util.jar.Attributes;
 import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.osgi.framework.BundleException;
@@ -60,10 +58,6 @@
 		super.tearDown();
 	}
 
-	public static Test suite() {
-		return new TestSuite(DiscardBundleTests.class);
-	}
-
 	public void testDiscardOsgiCheckConfigurationTrueOsgiDevSpecified() throws Exception {
 		Map<String, Object> configuration = createConfiguration();
 		configuration.put(OSGI_CHECKCONFIGURATION, Boolean.TRUE.toString());
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExceptionMessageTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExceptionMessageTest.java
index 0c5a4cf..2c6ab69 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExceptionMessageTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExceptionMessageTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2020 IBM Corporation and others.
+ * Copyright (c) 2020, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -19,8 +19,6 @@
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.container.Module;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.osgi.framework.Bundle;
@@ -32,9 +30,6 @@
 import org.osgi.framework.startlevel.BundleStartLevel;
 
 public class ExceptionMessageTest extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(ExceptionMessageTest.class);
-	}
 
 	public void testTrasientStartLevelError() throws BundleException {
 		Bundle b = installer.installBundle("test");
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExtensionBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExtensionBundleTests.java
index fb29534..4d4af1d 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExtensionBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ExtensionBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2016 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -16,8 +16,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.namespace.ExecutionEnvironmentNamespace;
@@ -26,9 +24,6 @@
 import org.osgi.framework.wiring.BundleWiring;
 
 public class ExtensionBundleTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(ExtensionBundleTests.class);
-	}
 
 	public static List<String> events = new ArrayList<>();
 
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ImportJavaSEPackagesTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ImportJavaSEPackagesTests.java
index da55e92..c0ca73e 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ImportJavaSEPackagesTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ImportJavaSEPackagesTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2018, 2020 IBM Corporation and others.
+ * Copyright (c) 2018, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -22,8 +22,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.osgi.framework.Bundle;
@@ -41,10 +39,6 @@
 	private static final String JAVA_UTIL = "java.util";
 	private static String originalSpecVersion;
 
-	public static Test suite() {
-		return new TestSuite(ImportJavaSEPackagesTests.class);
-	}
-
 	@Override
 	protected void setUp() throws Exception {
 		super.setUp();
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ListenerTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ListenerTests.java
index 7b693d9..281489f 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ListenerTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ListenerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2019 IBM Corporation and others.
+ * Copyright (c) 2019, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -17,8 +17,6 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -40,10 +38,6 @@
 	private Equinox equinox;
 	private BundleContext bundleContext;
 
-	public static Test suite() {
-		return new TestSuite(ListenerTests.class);
-	}
-
 	public void setUp() throws Exception {
 		methodName = getName();
 		simpleResults = new TestResults();
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/LoggingTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/LoggingTests.java
index 042f8a7..2c74b66 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/LoggingTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/LoggingTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2021 IBM Corporation and others.
+ * Copyright (c) 2010, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -18,8 +18,6 @@
 import java.util.Hashtable;
 import java.util.List;
 import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.internal.runtime.RuntimeLog;
 import org.eclipse.core.runtime.ILog;
 import org.eclipse.core.runtime.ILogListener;
@@ -49,10 +47,6 @@
 public class LoggingTests extends AbstractBundleTests {
 	static final String EQUINOX_LOGGER = "org.eclipse.equinox.logger";
 
-	public static Test suite() {
-		return new TestSuite(LoggingTests.class);
-	}
-
 	class LogServiceReference {
 		private final ServiceReference logRef;
 		final ExtendedLogService logService;
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/MultiReleaseJarTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/MultiReleaseJarTests.java
index d5301a4..ed6db78 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/MultiReleaseJarTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/MultiReleaseJarTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2017, 2021 IBM Corporation and others.
+ * Copyright (c) 2017, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -34,8 +34,6 @@
 import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 import org.eclipse.osgi.storage.StorageUtil;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
@@ -55,10 +53,6 @@
 	private final static String RNF = "RNF";
 	private final static String CNFE = "CNFE";
 
-	public static Test suite() {
-		return new TestSuite(MultiReleaseJarTests.class);
-	}
-
 	private File mrJarBundle;
 	private String originalSpecVersion;
 
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/NativeCodeBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/NativeCodeBundleTests.java
index 96b0474..85bdc01 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/NativeCodeBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/NativeCodeBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2015 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,11 +13,12 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.bundles;
 
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.util.HashMap;
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.container.ModuleCapability;
 import org.eclipse.osgi.container.ModuleRevision;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
@@ -26,9 +27,6 @@
 import org.osgi.framework.wiring.BundleRevision;
 
 public class NativeCodeBundleTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(NativeCodeBundleTests.class);
-	}
 
 	public void testNativeCode01() throws Exception {
 		Bundle nativetestA1 = installer.installBundle("nativetest.a1");
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PackageAdminBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PackageAdminBundleTests.java
index 404cd9c..591b10a 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PackageAdminBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PackageAdminBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2021 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -16,14 +16,23 @@
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.net.URL;
-import java.util.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
-import org.osgi.framework.*;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.SynchronousBundleListener;
+import org.osgi.framework.Version;
 import org.osgi.framework.hooks.resolver.ResolverHook;
 import org.osgi.framework.hooks.resolver.ResolverHookFactory;
-import org.osgi.framework.wiring.*;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRequirement;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.FrameworkWiring;
 import org.osgi.service.packageadmin.ExportedPackage;
 import org.osgi.service.packageadmin.PackageAdmin;
 
@@ -75,10 +84,6 @@
 		}
 	}
 
-	public static Test suite() {
-		return new TestSuite(PackageAdminBundleTests.class);
-	}
-
 	public void testBundleEvents01() throws Exception {
 		Bundle chainTest = installer.installBundle("chain.test"); //$NON-NLS-1$
 		Bundle chainTestA = installer.installBundle("chain.test.a"); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PersistedBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PersistedBundleTests.java
index 7c1289d..825523e 100755
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PersistedBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PersistedBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013 IBM Corporation and others.
+ * Copyright (c) 2013, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,8 +14,6 @@
 package org.eclipse.osgi.tests.bundles;
 
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 
 /*
@@ -46,10 +44,6 @@
 		super.tearDown();
 	}
 
-	public static Test suite() {
-		return new TestSuite(PersistedBundleTests.class);
-	}
-
 	/*
 	 * Test that a value of zero for eclipse.stateSaveDelayInterval results in
 	 * immediate persistence.
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PlatformAdminBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PlatformAdminBundleTests.java
index ec82216..697db34 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PlatformAdminBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/PlatformAdminBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2021 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -17,8 +17,6 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.ExportPackageDescription;
 import org.eclipse.osgi.service.resolver.ImportPackageSpecification;
@@ -35,9 +33,6 @@
 import org.osgi.framework.wiring.FrameworkWiring;
 
 public class PlatformAdminBundleTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(PlatformAdminBundleTests.class);
-	}
 
 	public void testInstallUninstallBundle() throws BundleException {
 		PlatformAdmin pa = installer.getPlatformAdmin();
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SubstituteExportsBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SubstituteExportsBundleTests.java
index 54796c4..1be0e3d 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SubstituteExportsBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SubstituteExportsBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,17 +13,12 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.bundles;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
 import org.osgi.service.packageadmin.ExportedPackage;
 import org.osgi.service.packageadmin.PackageAdmin;
 
 public class SubstituteExportsBundleTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(SubstituteExportsBundleTests.class);
-	}
 
 	public void testSubstituteExports01x() throws BundleException {
 		Bundle a = installer.installBundle("substitutes.a"); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java
index 23564d1..f705f39 100755
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2021 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -68,8 +68,6 @@
 import java.util.jar.Manifest;
 import javax.net.SocketFactory;
 import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.runtime.adaptor.EclipseStarter;
 import org.eclipse.equinox.log.ExtendedLogReaderService;
 import org.eclipse.equinox.log.ExtendedLogService;
@@ -130,9 +128,6 @@
 import org.osgi.service.url.URLStreamHandlerService;
 
 public class SystemBundleTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(SystemBundleTests.class);
-	}
 
 	public void testSystemBundle01() {
 		// simple test to create an embedded framework
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/URLHandlerTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/URLHandlerTests.java
index 21bce34..d5b65b1 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/URLHandlerTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/URLHandlerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2015, 2018 IBM Corporation and others.
+ * Copyright (c) 2015, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -16,14 +16,9 @@
 import java.awt.image.ImageProducer;
 import java.io.IOException;
 import java.net.URL;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.osgi.framework.Bundle;
 
 public class URLHandlerTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(URLHandlerTests.class);
-	}
 
 	public void testURLHandlerUnregister() throws Exception {
 		Bundle test = installer.installBundle("test.protocol.handler"); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/configuration/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/configuration/AllTests.java
index aa0e329..cf546bc 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/configuration/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/configuration/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2015 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,16 +13,15 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.configuration;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		EclipseStarterConfigIniTest.class, //
+		EclipseStarterConfigurationAreaTest.class, //
+		ReadOnlyConfigurationAreaTest.class, //
+		MovableConfigurationAreaTest.class //
+})
 public class AllTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTest(EclipseStarterConfigIniTest.suite());
-		suite.addTest(EclipseStarterConfigurationAreaTest.suite());
-		suite.addTest(ReadOnlyConfigurationAreaTest.suite());
-		suite.addTest(MovableConfigurationAreaTest.suite());
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/AllTests.java
index 327d0b8..2da0696 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013, 2021 IBM Corporation and others.
+ * Copyright (c) 2013, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,19 +13,17 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.container;
 
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		TestModuleContainer.class, //
+		ResolutionReportTest.class, //
+		ModuleContainerUsageTest.class, //
+		NamespaceListTest.class, //
+		NamespaceListBuilderTest.class, //
+		ModuleWiringTest.class 
+})
 public class AllTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTest(new JUnit4TestAdapter(TestModuleContainer.class));
-		suite.addTest(new JUnit4TestAdapter(ResolutionReportTest.class));
-		suite.addTest(new JUnit4TestAdapter(ModuleContainerUsageTest.class));
-		suite.addTest(new JUnit4TestAdapter(NamespaceListTest.class));
-		suite.addTest(new JUnit4TestAdapter(NamespaceListBuilderTest.class));
-		suite.addTest(new JUnit4TestAdapter(ModuleWiringTest.class));
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/debugoptions/DebugOptionsTestCase.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/debugoptions/DebugOptionsTestCase.java
index deae450..1a9814f 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/debugoptions/DebugOptionsTestCase.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/debugoptions/DebugOptionsTestCase.java
@@ -36,8 +36,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.atomic.AtomicReference;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.tests.harness.CoreTest;
 import org.eclipse.osgi.internal.debug.FrameworkDebugOptions;
 import org.eclipse.osgi.internal.debug.FrameworkDebugTraceEntry;
@@ -49,9 +47,6 @@
 import org.osgi.framework.ServiceRegistration;
 
 public class DebugOptionsTestCase extends CoreTest {
-	public static Test suite() {
-		return new TestSuite(DebugOptionsTestCase.class);
-	}
 
 	DebugOptions debugOptions;
 	ServiceReference ref;
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/AllTests.java
index 4c0beeb..6cf0719 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/AllTests.java
@@ -17,6 +17,10 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ EnvironmentInfoTest.class, FilePathTest.class, LocaleTransformationTest.class })
+@Suite.SuiteClasses({ //
+		EnvironmentInfoTest.class, //
+		FilePathTest.class, //
+		LocaleTransformationTest.class //
+})
 public class AllTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/FilePathTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/FilePathTest.java
index 9e105d6..f2a316d 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/FilePathTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/eclipseadaptor/FilePathTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,19 +13,12 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.eclipseadaptor;
 
-import org.eclipse.osgi.framework.util.FilePath;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.osgi.framework.util.FilePath;
 import org.eclipse.osgi.tests.OSGiTest;
 
 public class FilePathTest extends OSGiTest {
 
-	public static Test suite() {
-		return new TestSuite(FilePathTest.class);
-	}
-
 	public FilePathTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/AllFrameworkHookTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/AllFrameworkHookTests.java
index 6b21ff2..00691f9 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/AllFrameworkHookTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/AllFrameworkHookTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2013, 2020 IBM Corporation and others.
+ * Copyright (c) 2013, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,20 +13,19 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.hooks.framework;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		StorageHookTests.class, //
+		ClassLoaderHookTests.class, //
+		BundleFileWrapperFactoryHookTests.class, //
+		ContextFinderTests.class, //
+		DevClassPathWithExtensionTests.class, //
+		EmbeddedEquinoxWithURLInClassLoadTests.class, //
+		ActivatorOrderTest.class, //
+		DevClassPathDuplicateTests.class //
+})
 public class AllFrameworkHookTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllFrameworkHookTests.class.getName());
-		suite.addTest(new TestSuite(StorageHookTests.class));
-		suite.addTest(new TestSuite(ClassLoaderHookTests.class));
-		suite.addTest(new TestSuite(BundleFileWrapperFactoryHookTests.class));
-		suite.addTest(new TestSuite(ContextFinderTests.class));
-		suite.addTest(new TestSuite(DevClassPathWithExtensionTests.class));
-		suite.addTest(new TestSuite(EmbeddedEquinoxWithURLInClassLoadTests.class));
-		suite.addTest(new TestSuite(ActivatorOrderTest.class));
-		suite.addTest(new TestSuite(DevClassPathDuplicateTests.class));
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/AllTests.java
index a85f059..71c2c48 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/AllTests.java
@@ -17,7 +17,10 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ StatePerformanceTest.class, StateUsesPerformanceTest.class })
+@Suite.SuiteClasses({ //
+		StatePerformanceTest.class, //
+		StateUsesPerformanceTest.class //
+})
 public class AllTests {
 	public static final String DEGRADATION_RESOLUTION = "Performance decrease caused by additional fuctionality required for ResovlerHooks in OSGi R4.3 specification. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=324753 for details.";
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/BasePerformanceTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/BasePerformanceTest.java
index 1ba65b2..12dea03 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/BasePerformanceTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/BasePerformanceTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,19 +14,20 @@
 package org.eclipse.osgi.tests.perf;
 
 import java.util.Random;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.BundleSpecification;
+import org.eclipse.osgi.service.resolver.ExportPackageDescription;
+import org.eclipse.osgi.service.resolver.HostSpecification;
+import org.eclipse.osgi.service.resolver.ImportPackageSpecification;
+import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.osgi.service.resolver.StateObjectFactory;
+import org.eclipse.osgi.service.resolver.VersionRange;
 import org.eclipse.osgi.tests.services.resolver.AbstractStateTest;
 import org.osgi.framework.Version;
 
 public class BasePerformanceTest extends AbstractStateTest {
 	private Random random;
 
-	public static Test suite() {
-		return new TestSuite(BasePerformanceTest.class);
-	}
-
 	public BasePerformanceTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/CaseMapPerformanceTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/CaseMapPerformanceTest.java
index eb798a9..5c62f91 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/CaseMapPerformanceTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/CaseMapPerformanceTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2015 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -15,8 +15,6 @@
 
 import java.util.HashMap;
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.tests.harness.PerformanceTestRunner;
 import org.eclipse.osgi.framework.util.CaseInsensitiveDictionaryMap;
 import org.eclipse.osgi.framework.util.Headers;
@@ -34,10 +32,6 @@
 		}
 	}
 
-	public static Test suite() {
-		return new TestSuite(CaseMapPerformanceTest.class);
-	}
-
 	public CaseMapPerformanceTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StatePerformanceTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StatePerformanceTest.java
index 8b25576..a89dba8 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StatePerformanceTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StatePerformanceTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2015 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,19 +13,15 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.perf;
 
-import java.io.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import org.eclipse.core.tests.harness.CoreTest;
 import org.eclipse.core.tests.harness.PerformanceTestRunner;
 import org.eclipse.osgi.service.resolver.State;
 
 public class StatePerformanceTest extends BasePerformanceTest {
 
-	public static Test suite() {
-		return new TestSuite(StatePerformanceTest.class);
-	}
-
 	public StatePerformanceTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StateUsesPerformanceTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StateUsesPerformanceTest.java
index 6da9d9a..cf9f08c 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StateUsesPerformanceTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/perf/StateUsesPerformanceTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2010 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,8 +14,6 @@
 package org.eclipse.osgi.tests.perf;
 
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.tests.harness.PerformanceTestRunner;
 import org.eclipse.osgi.service.resolver.State;
 import org.osgi.framework.BundleException;
@@ -23,10 +21,6 @@
 
 public class StateUsesPerformanceTest extends BasePerformanceTest {
 
-	public static Test suite() {
-		return new TestSuite(StateUsesPerformanceTest.class);
-	}
-
 	public StateUsesPerformanceTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/permissions/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/permissions/AllTests.java
new file mode 100644
index 0000000..159997b
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/permissions/AllTests.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2022, 2022 Hannes Wellmann and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Hannes Wellmann - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osgi.tests.permissions;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		AdminPermissionTests.class, //
+		ServicePermissionTests.class, //
+		PackagePermissionTests.class //
+})
+public class AllTests {
+
+}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/AllTests.java
index 4070be3..4c5a50d 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 IBM Corporation and others.
+ * Copyright (c) 2011, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,14 +13,13 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.resource;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		BasicTest.class, //
+		ResolverHookTests.class //
+})
 public class AllTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllTests.class.getName());
-		suite.addTest(BasicTest.suite());
-		suite.addTest(ResolverHookTests.suite());
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/BasicTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/BasicTest.java
index 1670db3..d6fe813 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/BasicTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/BasicTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012, 2021 IBM Corporation and others.
+ * Copyright (c) 2012, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,16 +13,25 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.resource;
 
-import java.util.*;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.junit.Assert;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.Version;
 import org.osgi.framework.namespace.IdentityNamespace;
-import org.osgi.framework.wiring.*;
-import org.osgi.resource.*;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRequirement;
+import org.osgi.framework.wiring.BundleRevision;
+import org.osgi.framework.wiring.BundleWiring;
+import org.osgi.resource.Capability;
+import org.osgi.resource.Namespace;
+import org.osgi.resource.Requirement;
+import org.osgi.resource.Resource;
+import org.osgi.resource.Wire;
 
 public class BasicTest extends AbstractResourceTest {
 	private interface CapabilityProvider {
@@ -72,10 +81,6 @@
 	private Bundle tf1;
 	private Bundle tf2;
 
-	public static Test suite() {
-		return new TestSuite(BasicTest.class);
-	}
-
 	public BasicTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/ResolverHookTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/ResolverHookTests.java
index b4ee9eb..0366d72 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/ResolverHookTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/resource/ResolverHookTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011, 2021 IBM Corporation and others.
+ * Copyright (c) 2011, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,22 +13,20 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.resource;
 
-import java.util.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.hooks.resolver.ResolverHook;
 import org.osgi.framework.hooks.resolver.ResolverHookFactory;
 import org.osgi.framework.namespace.IdentityNamespace;
-import org.osgi.framework.wiring.*;
+import org.osgi.framework.wiring.BundleCapability;
+import org.osgi.framework.wiring.BundleRequirement;
+import org.osgi.framework.wiring.FrameworkWiring;
 
 public class ResolverHookTests extends AbstractResourceTest {
 
-	public static Test suite() {
-		return new TestSuite(ResolverHookTests.class);
-	}
-
 	public ResolverHookTests(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/OSGiAPICertificateTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/OSGiAPICertificateTest.java
index fa4d097..dba4f32 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/OSGiAPICertificateTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/OSGiAPICertificateTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2013 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -15,7 +15,6 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import junit.framework.TestSuite;
 import org.osgi.framework.AdminPermission;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleException;
@@ -63,10 +62,6 @@
 
 	private Collection<Bundle> installedBundles = new ArrayList<>();
 
-	public static TestSuite suite() {
-		return new TestSuite(OSGiAPICertificateTest.class);
-	}
-
 	private static String escapeStar(String dnChain) {
 		if (dnChain == null || dnChain.length() == 0)
 			return dnChain;
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SecurityTestSuite.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SecurityTestSuite.java
index 81b2071..36c7c50 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SecurityTestSuite.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SecurityTestSuite.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,21 +13,16 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.security;
 
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
 import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		BundleToJarInputStreamTest.class, //
+		KeyStoreTrustEngineTest.class, //
+		SignedBundleTest.class, //
+		OSGiAPICertificateTest.class //
+})
 public class SecurityTestSuite extends TestCase {
-	public static Test suite() {
-		TestSuite suite = new TestSuite("Unit tests for Equinox security");
-		suite.addTest(new JUnit4TestAdapter(BundleToJarInputStreamTest.class));
-		// trust engine tests
-		suite.addTest(KeyStoreTrustEngineTest.suite());
-		// signed bundle tests - *uses* trust engine
-		suite.addTest(SignedBundleTest.suite());
-		suite.addTest(SignedBundleTest.localSuite());
-		suite.addTest(OSGiAPICertificateTest.suite());
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SignedBundleTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SignedBundleTest.java
index 823e17d..d61fc9d 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SignedBundleTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/security/SignedBundleTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2016 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -18,7 +18,6 @@
 import java.security.cert.Certificate;
 import java.security.cert.X509Certificate;
 import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.tests.session.ConfigurationSessionTestSuite;
 import org.eclipse.osgi.signedcontent.InvalidContentException;
 import org.eclipse.osgi.signedcontent.SignedContent;
@@ -89,10 +88,6 @@
 		return suite;
 	}
 
-	public static Test localSuite() {
-		return new TestSuite(SignedBundleTest.class, "Unit local tests for SignedContent");
-	}
-
 	protected void setUp() throws Exception {
 		registerEclipseTrustEngine();
 		/*
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/AllSecurityAdminTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/AllSecurityAdminTests.java
index e3b5bfa..cc4b863 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/AllSecurityAdminTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/AllSecurityAdminTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,14 +13,13 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.securityadmin;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		SecurityAdminUnitTests.class, //
+		SecurityManagerTests.class //
+})
 public class AllSecurityAdminTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(AllSecurityAdminTests.class.getName());
-		suite.addTest(SecurityAdminUnitTests.suite());
-		suite.addTest(SecurityManagerTests.suite());
-		return suite;
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java
index 3c47ea9..9309fa6 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityAdminUnitTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2020 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -31,8 +31,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.eclipse.osgi.tests.bundles.AbstractBundleTests;
@@ -77,10 +75,6 @@
 	//private static final ConditionInfo POST_NOTMUT_SAT = new ConditionInfo("ext.framework.b.TestCondition", new String[] {"POST_NOTMUT_SAT", "true", "false", "true"}); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
 	//private static final ConditionInfo POST_NOTMUT_NOTSAT = new ConditionInfo("ext.framework.b.TestCondition", new String[] {"POST_NOTMUT_NOTSAT", "true", "false", "false"}); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
 
-	public static Test suite() {
-		return new TestSuite(SecurityAdminUnitTests.class);
-	}
-
 	private Policy previousPolicy;
 	private Equinox equinox;
 	private ConditionalPermissionAdmin cpa;
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java
index 2602ce7..9bb9dbf 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/securityadmin/SecurityManagerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2021 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -27,8 +27,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.launch.Equinox;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.eclipse.osgi.tests.bundles.AbstractBundleTests;
@@ -68,10 +66,6 @@
 	private static final PermissionInfo importFrameworkPackagePermission = new PermissionInfo(PackagePermission.class.getName(), "org.osgi.framework", "import"); //$NON-NLS-1$ //$NON-NLS-2$
 	private Policy previousPolicy;
 
-	public static Test suite() {
-		return new TestSuite(SecurityManagerTests.class);
-	}
-
 	@Override
 	protected void setUp() throws Exception {
 		if (System.getSecurityManager() != null)
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/AllTests.java
new file mode 100644
index 0000000..63920e8
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/AllTests.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2022, 2022 Hannes Wellmann and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     Hannes Wellmann - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osgi.tests.serviceregistry;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		ServiceRegistryTests.class, //
+		ServiceExceptionTests.class, //
+		ServiceHookTests.class, //
+		ServiceTrackerTests.class //
+})
+public class AllTests {
+}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceExceptionTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceExceptionTests.java
index a1ac1df..ad75267 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceExceptionTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceExceptionTests.java
@@ -14,8 +14,6 @@
 package org.eclipse.osgi.tests.serviceregistry;
 
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.eclipse.osgi.tests.bundles.AbstractBundleTests;
 import org.osgi.framework.Bundle;
@@ -28,9 +26,6 @@
 import org.osgi.framework.ServiceRegistration;
 
 public class ServiceExceptionTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(ServiceExceptionTests.class);
-	}
 
 	public void testServiceException01() {
 		final String testMethodName = "testServiceException01"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceHookTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceHookTests.java
index b27996a..2dd38f2 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceHookTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceHookTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2021 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -20,8 +20,6 @@
 import java.util.Iterator;
 import java.util.List;
 import junit.framework.AssertionFailedError;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.eclipse.osgi.tests.bundles.AbstractBundleTests;
 import org.osgi.framework.BundleContext;
@@ -37,9 +35,6 @@
 import org.osgi.framework.hooks.service.ListenerHook;
 
 public class ServiceHookTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(ServiceHookTests.class);
-	}
 
 	public void testFindHook01() {
 		final String testMethodName = "testFindHook01"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java
index a659f0a..349d60c 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java
@@ -18,8 +18,6 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.eclipse.osgi.tests.bundles.AbstractBundleTests;
 import org.eclipse.osgi.tests.util.MapDictionary;
@@ -35,14 +33,6 @@
 import org.osgi.framework.ServiceRegistration;
 
 public class ServiceRegistryTests extends AbstractBundleTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ServiceRegistryTests.class.getName());
-		suite.addTest(new TestSuite(ServiceRegistryTests.class));
-		suite.addTest(ServiceExceptionTests.suite());
-		suite.addTest(ServiceHookTests.suite());
-		suite.addTest(ServiceTrackerTests.suite());
-		return suite;
-	}
 
 	public void testServiceListener01() {
 		final String testMethodName = getName();
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceTrackerTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceTrackerTests.java
index 9010c18..66ca5cc 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceTrackerTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceTrackerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2021 IBM Corporation and others.
+ * Copyright (c) 2008, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,18 +14,16 @@
 package org.eclipse.osgi.tests.serviceregistry;
 
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.eclipse.osgi.tests.bundles.AbstractBundleTests;
-import org.osgi.framework.*;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
 
 public class ServiceTrackerTests extends AbstractBundleTests {
-	public static Test suite() {
-		return new TestSuite(ServiceTrackerTests.class);
-	}
 
 	public void testServiceTracker01() {
 		final String testMethodName = getName();
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/AllTests.java
index 9aa98b8..cedc3cb 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/AllTests.java
@@ -17,7 +17,12 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ LocationAreaSessionTest.class, BasicLocationTests.class, SimpleTests.class,
-		FileManagerTests.class, StreamManagerTests.class })
+@Suite.SuiteClasses({ //
+		LocationAreaSessionTest.class, //
+		BasicLocationTests.class, //
+		SimpleTests.class, //
+		FileManagerTests.class, //
+		StreamManagerTests.class //
+})
 public class AllTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/BasicLocationTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/BasicLocationTests.java
index 16e776c..d46d04b 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/BasicLocationTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/BasicLocationTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2021 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -23,8 +23,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.tests.harness.CoreTest;
 import org.eclipse.equinox.log.SynchronousLogListener;
@@ -52,10 +50,6 @@
 		super(name);
 	}
 
-	public static Test suite() {
-		return new TestSuite(BasicLocationTests.class);
-	}
-
 	protected void setUp() throws Exception {
 		super.setUp();
 
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/FileManagerTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/FileManagerTests.java
index d1e3cc9..e0a964b 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/FileManagerTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/FileManagerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2011 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -18,8 +18,6 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.osgi.storagemanager.StorageManager;
 import org.eclipse.osgi.tests.OSGiTest;
@@ -37,10 +35,6 @@
 		super(name);
 	}
 
-	public static Test suite() {
-		return new TestSuite(FileManagerTests.class);
-	}
-
 	protected void setUp() throws Exception {
 		super.setUp();
 		base = new File(Platform.getConfigurationLocation().getURL().getPath(), "FileManagerTests");
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/StreamManagerTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/StreamManagerTests.java
index 290119f..051f2b4 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/StreamManagerTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/datalocation/StreamManagerTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2011 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -22,8 +22,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.RandomAccessFile;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.osgi.storagemanager.ManagedOutputStream;
 import org.eclipse.osgi.storagemanager.StorageManager;
@@ -42,10 +40,6 @@
 		super(name);
 	}
 
-	public static Test suite() {
-		return new TestSuite(StreamManagerTests.class);
-	}
-
 	protected void setUp() throws Exception {
 		super.setUp();
 		base = new File(Platform.getConfigurationLocation().getURL().getPath(), "StreamManagerTests");
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/AllTests.java
index 501f74c..9b9faa5 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/AllTests.java
@@ -17,9 +17,17 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ SubstitutableExportsTest.class, DisabledInfoTest.class, PlatformAdminTest.class,
-		StateResolverTest.class, StateCycleTest.class, StateComparisonTest.class, VersionRangeTests.class,
-		R4ResolverTest.class, XFriendsInternalResolverTest.class, GenericCapabilityTest.class, OSGiCapabilityTest.class,
+@Suite.SuiteClasses({ SubstitutableExportsTest.class, //
+		DisabledInfoTest.class, //
+		PlatformAdminTest.class, //
+		StateResolverTest.class, //
+		StateCycleTest.class, //
+		StateComparisonTest.class, //
+		VersionRangeTests.class, //
+		R4ResolverTest.class, //
+		XFriendsInternalResolverTest.class, //
+		GenericCapabilityTest.class, //
+		OSGiCapabilityTest.class, //
 		DevModeTest.class })
 public class AllTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DevModeTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DevModeTest.java
index da3243f..403a447 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DevModeTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DevModeTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2010 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -15,8 +15,6 @@
 
 import java.util.Dictionary;
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.ExportPackageDescription;
 import org.eclipse.osgi.service.resolver.State;
@@ -24,9 +22,6 @@
 import org.osgi.framework.Constants;
 
 public class DevModeTest extends AbstractStateTest {
-	public static Test suite() {
-		return new TestSuite(DevModeTest.class);
-	}
 
 	public DevModeTest(String name) {
 		super(name);
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DisabledInfoTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DisabledInfoTest.java
index 7372a97..4a2ab80 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DisabledInfoTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/DisabledInfoTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -15,9 +15,9 @@
 
 import java.io.File;
 import java.io.IOException;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.DisabledInfo;
+import org.eclipse.osgi.service.resolver.State;
 import org.eclipse.osgi.tests.OSGiTestsActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
@@ -28,10 +28,6 @@
 	private final String B3_LOCATION = "b3"; //$NON-NLS-1$
 	private final String POLICY = "test.policy"; //$NON-NLS-1$
 
-	public static Test suite() {
-		return new TestSuite(DisabledInfoTest.class);
-	}
-
 	public DisabledInfoTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/GenericCapabilityTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/GenericCapabilityTest.java
index 74d36cb..8cfb624 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/GenericCapabilityTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/GenericCapabilityTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2011 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -15,9 +15,10 @@
 
 import java.util.Dictionary;
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.GenericDescription;
+import org.eclipse.osgi.service.resolver.GenericSpecification;
+import org.eclipse.osgi.service.resolver.State;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 
@@ -25,10 +26,6 @@
 	static final String GENERIC_REQUIRE = "Eclipse-GenericRequire"; //$NON-NLS-1$
 	static final String GENERIC_CAPABILITY = "Eclipse-GenericCapability"; //$NON-NLS-1$
 
-	public static Test suite() {
-		return new TestSuite(GenericCapabilityTest.class);
-	}
-
 	public GenericCapabilityTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/NewResolverTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/NewResolverTest.java
index 33c42d1..3f25348 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/NewResolverTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/NewResolverTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2015 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,8 +13,6 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.services.resolver;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.State;
 import org.osgi.framework.BundleException;
@@ -25,10 +23,6 @@
 		super(testName);
 	}
 
-	public static Test suite() {
-		return new TestSuite(NewResolverTest.class);
-	}
-
 	public void testSkeleton() {
 		State state = buildEmptyState();
 		state.resolve();
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/OSGiCapabilityTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/OSGiCapabilityTest.java
index e5d4f9f..d8cd5bb 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/OSGiCapabilityTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/OSGiCapabilityTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010, 2017 IBM Corporation and others.
+ * Copyright (c) 2010, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -23,8 +23,6 @@
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.framework.util.CaseInsensitiveDictionaryMap;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.ExportPackageDescription;
@@ -42,10 +40,6 @@
 public class OSGiCapabilityTest extends AbstractStateTest {
 	private static final String MANIFEST_ROOT = "test_files/genericCapability/";
 
-	public static Test suite() {
-		return new TestSuite(OSGiCapabilityTest.class);
-	}
-
 	public OSGiCapabilityTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/PlatformAdminTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/PlatformAdminTest.java
index 1e31fff..54cc090 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/PlatformAdminTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/PlatformAdminTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,12 +13,17 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.services.resolver;
 
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
 import java.util.Dictionary;
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.ExportPackageDescription;
+import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.osgi.service.resolver.StateObjectFactory;
+import org.eclipse.osgi.service.resolver.VersionConstraint;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 
@@ -26,10 +31,6 @@
 	private static final String GENERIC_REQUIRE = "Eclipse-GenericRequire"; //$NON-NLS-1$
 	private static final String GENERIC_CAPABILITY = "Eclipse-GenericCapability"; //$NON-NLS-1$
 
-	public static Test suite() {
-		return new TestSuite(PlatformAdminTest.class);
-	}
-
 	public PlatformAdminTest(String name) {
 		super(name);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/R4ResolverTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/R4ResolverTest.java
index 3fc63cd..61b5229 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/R4ResolverTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/R4ResolverTest.java
@@ -51,13 +51,41 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ TestAttributes_001.class, TestBSN_001.class, TestCycle_001.class, TestCycle_002.class,
-		TestCycle_003.class, TestCycle_004.class, TestCycle_005.class, TestCycle_006.class, TestDynamic_001.class,
-		TestDynamic_002.class, TestDynamic_003.class, TestDynamic_004.class, TestDynamic_005.class,
-		TestDynamic_006.class, TestGenerated_001.class, TestGrouping_001.class, TestGrouping_002.class,
-		TestGrouping_003.class, TestGrouping_006.class, TestGrouping_008.class, TestOptional_001.class,
-		TestOptional_002.class, TestPropagation_001.class, TestPropagation_003.class, TestRFC79_001.class,
-		TestRFC79_002.class, TestRFC79_003.class, TestRFC79_004.class, TestRFC79_005.class, TestRFC79_006.class,
-		TestRFC79_007.class, TestVersion_001.class, TestVersion_002.class, TestVersion_003.class })
+@Suite.SuiteClasses({ //
+		TestAttributes_001.class, //
+		TestBSN_001.class, //
+		TestCycle_001.class, //
+		TestCycle_002.class, //
+		TestCycle_003.class, //
+		TestCycle_004.class, //
+		TestCycle_005.class, //
+		TestCycle_006.class, //
+		TestDynamic_001.class, //
+		TestDynamic_002.class, //
+		TestDynamic_003.class, //
+		TestDynamic_004.class, //
+		TestDynamic_005.class, //
+		TestDynamic_006.class, //
+		TestGenerated_001.class, //
+		TestGrouping_001.class, //
+		TestGrouping_002.class, //
+		TestGrouping_003.class, //
+		TestGrouping_006.class, //
+		TestGrouping_008.class, //
+		TestOptional_001.class, //
+		TestOptional_002.class, //
+		TestPropagation_001.class, //
+		TestPropagation_003.class, //
+		TestRFC79_001.class, //
+		TestRFC79_002.class, //
+		TestRFC79_003.class, //
+		TestRFC79_004.class, //
+		TestRFC79_005.class, //
+		TestRFC79_006.class, //
+		TestRFC79_007.class, //
+		TestVersion_001.class, //
+		TestVersion_002.class, //
+		TestVersion_003.class //
+})
 public class R4ResolverTest {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateComparisonTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateComparisonTest.java
index b65390b..a1d4139 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateComparisonTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateComparisonTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,9 +13,10 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.services.resolver;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BundleDelta;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.osgi.service.resolver.StateDelta;
 import org.osgi.framework.BundleException;
 
 public class StateComparisonTest extends AbstractStateTest {
@@ -87,8 +88,4 @@
 		delta = state2.compare(state1);
 		assertEquals("3.1", 0, delta.getChanges().length);
 	}
-
-	public static Test suite() {
-		return new TestSuite(StateComparisonTest.class);
-	}
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateCycleTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateCycleTest.java
index 0c19c67..c366d1d 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateCycleTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateCycleTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
+ * Copyright (c) 2004, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,18 +14,14 @@
 package org.eclipse.osgi.tests.services.resolver;
 
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.ExportPackageDescription;
+import org.eclipse.osgi.service.resolver.State;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 
 public class StateCycleTest extends AbstractStateTest {
 
-	public static Test suite() {
-		return new TestSuite(StateCycleTest.class);
-	}
-
 	public StateCycleTest(String testName) {
 		super(testName);
 	}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateResolverTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateResolverTest.java
index 0308761..59bd2c1 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateResolverTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/StateResolverTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2018 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -24,8 +24,6 @@
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestSuite;
 import org.eclipse.osgi.framework.util.CaseInsensitiveDictionaryMap;
 import org.eclipse.osgi.service.resolver.BaseDescription;
 import org.eclipse.osgi.service.resolver.BundleDelta;
@@ -54,9 +52,6 @@
 import org.osgi.resource.Capability;
 
 public class StateResolverTest extends AbstractStateTest {
-	public static Test suite() {
-		return new TestSuite(StateResolverTest.class);
-	}
 
 	public StateResolverTest(String name) {
 		super(name);
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/SubstitutableExportsTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/SubstitutableExportsTest.java
index 58deafa..ece5063 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/SubstitutableExportsTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/SubstitutableExportsTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2011 IBM Corporation and others.
+ * Copyright (c) 2003, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,16 +14,17 @@
 package org.eclipse.osgi.tests.services.resolver;
 
 import java.util.Hashtable;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
+import org.eclipse.osgi.service.resolver.BundleDelta;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.ExportPackageDescription;
+import org.eclipse.osgi.service.resolver.ImportPackageSpecification;
+import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.osgi.service.resolver.StateDelta;
+import org.eclipse.osgi.service.resolver.VersionConstraint;
 import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 
 public class SubstitutableExportsTest extends AbstractStateTest {
-	public static Test suite() {
-		return new TestSuite(SubstitutableExportsTest.class);
-	}
 
 	public SubstitutableExportsTest(String name) {
 		super(name);
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/XFriendsInternalResolverTest.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/XFriendsInternalResolverTest.java
index c30c484..39c6f03 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/XFriendsInternalResolverTest.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/services/resolver/XFriendsInternalResolverTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,16 +13,16 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.services.resolver;
 
-import java.util.*;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.osgi.service.resolver.*;
-import org.osgi.framework.*;
+import java.util.Dictionary;
+import java.util.Hashtable;
+import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.ExportPackageDescription;
+import org.eclipse.osgi.service.resolver.State;
+import org.eclipse.osgi.service.resolver.StateHelper;
+import org.osgi.framework.BundleException;
+import org.osgi.framework.Constants;
 
 public class XFriendsInternalResolverTest extends AbstractStateTest {
-	public static Test suite() {
-		return new TestSuite(XFriendsInternalResolverTest.class);
-	}
 
 	public XFriendsInternalResolverTest(String name) {
 		super(name);
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/url/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/url/AllTests.java
index ccffc8f..d989a8e 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/url/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/url/AllTests.java
@@ -17,6 +17,8 @@
 import org.junit.runners.Suite;
 
 @RunWith(Suite.class)
-@Suite.SuiteClasses({ BundleURLConnectionTest.class })
+@Suite.SuiteClasses({ //
+		BundleURLConnectionTest.class //
+})
 public class AllTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/AllTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/AllTests.java
index 9ac4293..9f3df8b 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/AllTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/AllTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * Copyright (c) 2006, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,32 +14,18 @@
 
 package org.eclipse.osgi.tests.util;
 
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestSuite;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
-public class AllTests extends TestSuite {
-
-	// Test suite to run all text processor session tests
-	public static Test suite() {
-		return new AllTests();
-	}
-
-	public AllTests() {
-		addTest(new TestSuite(TestCaseinsensitiveMap.class));
-		addTest(new TestSuite(ObjectPoolTestCase.class));
-		addTest(new JUnit4TestAdapter(ManifestElementTestCase.class));
-		addTest(new TestSuite(NLSTestCase.class));
-		addTest(new TestSuite(StorageUtilTestCase.class));
-		addBidiTests();
-		addLatinTests();
-	}
-
-	private void addBidiTests() {
-		addTest(new TextProcessorSessionTest("org.eclipse.osgi.tests", BidiTextProcessorTestCase.class, "iw"));
-	}
-
-	private void addLatinTests() {
-		addTest(new TextProcessorSessionTest("org.eclipse.osgi.tests", LatinTextProcessorTestCase.class, "en"));
-	}
+@RunWith(Suite.class)
+@Suite.SuiteClasses({ //
+		TestCaseinsensitiveMap.class, //
+		ObjectPoolTestCase.class, //
+		ManifestElementTestCase.class, //
+		NLSTestCase.class, //
+		StorageUtilTestCase.class, //
+		BidiTextProcessorTestCase.class, //
+		LatinTextProcessorTestCase.class, //
+})
+public class AllTests {
 }
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/BidiTextProcessorTestCase.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/BidiTextProcessorTestCase.java
index 0b28ad0..a36a8de 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/BidiTextProcessorTestCase.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/BidiTextProcessorTestCase.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
+ * Copyright (c) 2006, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
 
 package org.eclipse.osgi.tests.util;
 
+import junit.framework.Test;
 import org.eclipse.osgi.util.TextProcessor;
 
 /**
@@ -24,6 +25,10 @@
  */
 public class BidiTextProcessorTestCase extends TextProcessorTestCase {
 
+	public static Test suite() {
+		return new TextProcessorSessionTest("org.eclipse.osgi.tests", BidiTextProcessorTestCase.class, "iw");
+	}
+
 	// left to right marker
 	protected static final char LRM = '\u200e';
 	// left to right embedding
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/LatinTextProcessorTestCase.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/LatinTextProcessorTestCase.java
index a5a0480..5edae24 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/LatinTextProcessorTestCase.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/util/LatinTextProcessorTestCase.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011 IBM Corporation and others.
+ * Copyright (c) 2011, 2022 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.osgi.tests.util;
 
+import junit.framework.Test;
 import org.eclipse.osgi.util.TextProcessor;
 
 /**
@@ -21,6 +22,11 @@
  *
  */
 public class LatinTextProcessorTestCase extends TextProcessorTestCase {
+
+	public static Test suite() {
+		return new TextProcessorSessionTest("org.eclipse.osgi.tests", LatinTextProcessorTestCase.class, "en");
+	}
+
 	protected static String[] ALL_PATHS;
 	static {
 		// merge all test strings into one array for Latin locales