Index: /applications/editors/josm/plugins/ImportImagePlugin/test/unit/org/openstreetmap/josm/plugins/ImportImagePlugin/ImageLayerTest.java
===================================================================
--- /applications/editors/josm/plugins/ImportImagePlugin/test/unit/org/openstreetmap/josm/plugins/ImportImagePlugin/ImageLayerTest.java	(revision 36192)
+++ /applications/editors/josm/plugins/ImportImagePlugin/test/unit/org/openstreetmap/josm/plugins/ImportImagePlugin/ImageLayerTest.java	(revision 36193)
@@ -9,11 +9,10 @@
 
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.OsmReader;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
+import org.openstreetmap.josm.testutils.annotations.Projection;
 
 /**
@@ -22,12 +21,6 @@
  */
 @BasicPreferences
+@Projection
 class ImageLayerTest {
-
-    /**
-     * Setup test.
-     */
-    @RegisterExtension
-    static JOSMTestRules rules = new JOSMTestRules().projection();
-
     /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/14894">#14894</a>
Index: /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java	(revision 36192)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideDataTest.java	(revision 36193)
@@ -25,7 +25,4 @@
 @Main
 class StreetsideDataTest {
-
-  /*@Rule
-  public JOSMTestRules rules = new StreetsideTestRules().platform();*/
 
   private StreetsideData data;
Index: /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java	(revision 36192)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/StreetsideLayerTest.java	(revision 36193)
@@ -3,9 +3,8 @@
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.awt.GraphicsEnvironment;
 
 import org.junit.jupiter.api.Test;
@@ -69,5 +68,5 @@
   void testGetInfoComponent() {
     Object comp = StreetsideLayer.getInstance().getInfoComponent();
-    assertTrue(comp instanceof String);
+    assertInstanceOf(String.class, comp);
     assertTrue(((String) comp).length() >= 9);
   }
Index: /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/TestUtil.java
===================================================================
--- /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/TestUtil.java	(revision 36192)
+++ /applications/editors/josm/plugins/MicrosoftStreetside/test/unit/org/openstreetmap/josm/plugins/streetside/utils/TestUtil.java	(revision 36193)
@@ -4,7 +4,5 @@
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
 
-import java.awt.GraphicsEnvironment;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
@@ -12,10 +10,6 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
-import java.util.logging.Level;
 
-import org.junit.runners.model.InitializationError;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
-import org.openstreetmap.josm.tools.Logging;
-import org.openstreetmap.josm.tools.Utils;
+import org.openstreetmap.josm.tools.JosmRuntimeException;
 
 /**
@@ -37,7 +31,6 @@
       return result;
     } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
-      fail(e.getLocalizedMessage());
+      throw new JosmRuntimeException(e);
     }
-    return null;
   }
 
@@ -52,7 +45,6 @@
       return getAccessibleField(object.getClass(), name).get(object);
     } catch (IllegalAccessException | SecurityException e) {
-      fail(e.getLocalizedMessage());
+      throw new JosmRuntimeException(e);
     }
-    return null;
   }
 
@@ -80,16 +72,5 @@
       }
     } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
-      fail(e.getLocalizedMessage());
-    }
-  }
-
-  public static class StreetsideTestRules extends JOSMTestRules {
-    @Override
-    protected void before() throws InitializationError, ReflectiveOperationException {
-      Logging.getLogger().setFilter(record -> record.getLevel().intValue() >= Level.WARNING.intValue() || record.getSourceClassName().startsWith("org.openstreetmap.josm.plugins.streetside"));
-      Utils.updateSystemProperty("java.util.logging.SimpleFormatter.format", "%1$tF %1$tT.%1$tL %2$s %4$s: %5$s%6$s%n");
-      final String isHeadless = Boolean.toString(GraphicsEnvironment.isHeadless());
-      super.before();
-      System.setProperty("java.awt.headless", isHeadless);
+      throw new JosmRuntimeException(e);
     }
   }
Index: /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/EditLevel0LActionTest.java
===================================================================
--- /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/EditLevel0LActionTest.java	(revision 36192)
+++ /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/EditLevel0LActionTest.java	(revision 36193)
@@ -12,5 +12,4 @@
 
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.MoveCommand;
@@ -22,22 +21,13 @@
 import org.openstreetmap.josm.data.osm.PrimitiveData;
 import org.openstreetmap.josm.data.osm.TagMap;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
-
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
+import org.openstreetmap.josm.testutils.annotations.Projection;
 
 import net.simon04.comfort0.level0l.parsergen.Level0LParser;
 import net.simon04.comfort0.level0l.parsergen.ParseException;
-import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
 
 @BasicPreferences
+@Projection
 class EditLevel0LActionTest {
-
-    /**
-     * Setup rule
-     */
-    @RegisterExtension
-    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    JOSMTestRules test = new JOSMTestRules().projection();
-
     private SequenceCommand buildChangeCommands(DataSet dataSet) throws ParseException {
         final String level0l = "node 1831881213: 54.0900666, 12.2539381 #Neu Broderstorf (54.0900666, 12.2539381)\n" +
Index: /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/level0l/parsergen/Level0LParserTest.java
===================================================================
--- /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/level0l/parsergen/Level0LParserTest.java	(revision 36192)
+++ /applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/level0l/parsergen/Level0LParserTest.java	(revision 36193)
@@ -8,5 +8,4 @@
 import java.util.List;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.junit.jupiter.api.Test;
 import org.openstreetmap.josm.data.osm.NodeData;
@@ -15,5 +14,4 @@
 import org.openstreetmap.josm.data.osm.RelationData;
 import org.openstreetmap.josm.data.osm.WayData;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
 
Index: /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/datasets/DataSetUpdaterTest.java
===================================================================
--- /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/datasets/DataSetUpdaterTest.java	(revision 36192)
+++ /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/core/io/datasets/DataSetUpdaterTest.java	(revision 36193)
@@ -13,5 +13,4 @@
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
-import org.junit.jupiter.api.extension.RegisterExtension;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -20,5 +19,4 @@
 import org.openstreetmap.josm.plugins.opendata.core.datasets.DataSetUpdater;
 import org.openstreetmap.josm.plugins.opendata.core.io.archive.ZipReader;
-import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
 import org.openstreetmap.josm.testutils.annotations.Projection;
@@ -28,14 +26,8 @@
  */
 @BasicPreferences
+@org.openstreetmap.josm.testutils.annotations.OsmApi(org.openstreetmap.josm.testutils.annotations.OsmApi.APIType.DEV)
 @Projection
 @Timeout(value = 1, unit = TimeUnit.MINUTES)
 class DataSetUpdaterTest {
-
-    /**
-     * Setup test.
-     */
-    @RegisterExtension
-    JOSMTestRules rules = new JOSMTestRules().devAPI();
-
     /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/11166">#11166</a>
Index: /applications/editors/josm/plugins/turnrestrictions/test/unit/org/openstreetmap/josm/plugins/turnrestrictions/editor/AllEditorTests.java
===================================================================
--- /applications/editors/josm/plugins/turnrestrictions/test/unit/org/openstreetmap/josm/plugins/turnrestrictions/editor/AllEditorTests.java	(revision 36192)
+++ /applications/editors/josm/plugins/turnrestrictions/test/unit/org/openstreetmap/josm/plugins/turnrestrictions/editor/AllEditorTests.java	(revision 36193)
@@ -4,5 +4,4 @@
 import org.junit.platform.suite.api.SelectClasses;
 
-import junit.framework.TestCase;
 import org.junit.platform.suite.api.Suite;
 
@@ -16,3 +15,3 @@
     ExceptValueModelTest.class
 })
-public class AllEditorTests extends TestCase{}
+public class AllEditorTests {}
