This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 27ee7ec515a HBASE-29932 Upgrade hbase-http to use junit5 (#7810)
27ee7ec515a is described below

commit 27ee7ec515ab81f91e5573207b813060ca1c7981
Author: Liu Xiao <[email protected]>
AuthorDate: Tue Mar 3 23:12:15 2026 +0800

    HBASE-29932 Upgrade hbase-http to use junit5 (#7810)
    
    Signed-off-by: Duo Zhang <[email protected]>
---
 hbase-http/pom.xml                                 |  5 --
 .../hbase/http/HttpServerFunctionalTest.java       |  6 +--
 .../apache/hadoop/hbase/http/TestGlobalFilter.java | 14 ++---
 .../apache/hadoop/hbase/http/TestHtmlQuoting.java  | 34 ++++++------
 .../hadoop/hbase/http/TestHttpCookieFlag.java      | 53 +++++++++---------
 .../hadoop/hbase/http/TestHttpRequestLog.java      | 19 +++----
 .../apache/hadoop/hbase/http/TestHttpServer.java   | 63 ++++++++++------------
 .../hadoop/hbase/http/TestHttpServerLifecycle.java | 33 +++++-------
 .../hadoop/hbase/http/TestHttpServerWebapps.java   | 15 ++----
 .../apache/hadoop/hbase/http/TestPathFilter.java   | 14 ++---
 .../hbase/http/TestProfileOutputServlet.java       | 23 +++-----
 .../hbase/http/TestProxyUserSpnegoHttpServer.java  | 28 +++++-----
 .../hadoop/hbase/http/TestSSLHttpServer.java       | 23 ++++----
 .../hbase/http/TestSecurityHeadersFilter.java      | 16 ++----
 .../hadoop/hbase/http/TestServletFilter.java       | 44 ++++++---------
 .../hadoop/hbase/http/TestSpnegoHttpServer.java    | 40 +++++++-------
 .../hadoop/hbase/http/conf/TestConfServlet.java    | 27 ++++------
 .../hadoop/hbase/http/jmx/TestJMXJsonServlet.java  | 31 +++++------
 .../lib/TestAuthenticationFilterInitializer.java   | 15 +++---
 .../hbase/http/lib/TestStaticUserWebFilter.java    | 15 ++----
 .../apache/hadoop/hbase/http/log/TestLogLevel.java | 40 +++++++-------
 .../http/prometheus/TestPrometheusServlet.java     | 19 +++----
 .../org/apache/hadoop/hbase/util/TestJSONBean.java | 14 ++---
 23 files changed, 240 insertions(+), 351 deletions(-)

diff --git a/hbase-http/pom.xml b/hbase-http/pom.xml
index eb5d69dfbfd..6168b891791 100644
--- a/hbase-http/pom.xml
+++ b/hbase-http/pom.xml
@@ -139,11 +139,6 @@
       <artifactId>junit-jupiter-params</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.junit.vintage</groupId>
-      <artifactId>junit-vintage-engine</artifactId>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.hamcrest</groupId>
       <artifactId>hamcrest-library</artifactId>
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/HttpServerFunctionalTest.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/HttpServerFunctionalTest.java
index c11a203620a..c7b8db2cb0b 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/HttpServerFunctionalTest.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/HttpServerFunctionalTest.java
@@ -17,8 +17,8 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -215,7 +215,7 @@ public class HttpServerFunctionalTest {
    * @throws MalformedURLException if the URL cannot be created.
    */
   public static URL getServerURL(HttpServer server) throws 
MalformedURLException {
-    assertNotNull("No server", server);
+    assertNotNull(server, "No server");
     return new URL("http://"; + 
NetUtils.getHostPortString(server.getConnectorAddress(0)));
   }
 
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestGlobalFilter.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestGlobalFilter.java
index 80b02006c03..46e8902bbd6 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestGlobalFilter.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestGlobalFilter.java
@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 import java.util.Set;
@@ -30,21 +30,17 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
 import org.apache.hadoop.net.NetUtils;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestGlobalFilter extends HttpServerFunctionalTest {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestGlobalFilter.class);
 
   private static final Logger LOG = LoggerFactory.getLogger(HttpServer.class);
   private static final Set<String> RECORDS = new TreeSet<>();
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
index 0fe46194083..4728e1f057e 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHtmlQuoting.java
@@ -17,26 +17,22 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import javax.servlet.http.HttpServletRequest;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestHtmlQuoting {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestHtmlQuoting.class);
 
   @Test
   public void testNeedsQuoting() throws Exception {
@@ -85,17 +81,17 @@ public class TestHtmlQuoting {
       new HttpServer.QuotingInputFilter.RequestQuoter(mockReq);
 
     Mockito.doReturn("a<b").when(mockReq).getParameter("x");
-    assertEquals("Test simple param quoting", "a&lt;b", 
quoter.getParameter("x"));
+    assertEquals("a&lt;b", quoter.getParameter("x"), "Test simple param 
quoting");
 
     Mockito.doReturn(null).when(mockReq).getParameter("x");
-    assertEquals("Test that missing parameters dont cause NPE", null, 
quoter.getParameter("x"));
+    assertEquals(null, quoter.getParameter("x"), "Test that missing parameters 
dont cause NPE");
 
     Mockito.doReturn(new String[] { "a<b", "b" 
}).when(mockReq).getParameterValues("x");
-    assertArrayEquals("Test escaping of an array", new String[] { "a&lt;b", 
"b" },
-      quoter.getParameterValues("x"));
+    assertArrayEquals(new String[] { "a&lt;b", "b" }, 
quoter.getParameterValues("x"),
+      "Test escaping of an array");
 
     Mockito.doReturn(null).when(mockReq).getParameterValues("x");
-    assertNull("Test that missing parameters dont cause NPE for array",
-      quoter.getParameterValues("x"));
+    assertNull(quoter.getParameterValues("x"),
+      "Test that missing parameters dont cause NPE for array");
   }
 }
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpCookieFlag.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpCookieFlag.java
index 91935a97da6..f0d6fc7665c 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpCookieFlag.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpCookieFlag.java
@@ -17,6 +17,8 @@
  */
 package org.apache.hadoop.hbase.http;
 
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.HttpCookie;
@@ -35,25 +37,20 @@ import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
 import org.apache.hadoop.net.NetUtils;
 import org.apache.hadoop.security.authentication.server.AuthenticationFilter;
 import org.apache.hadoop.security.ssl.KeyStoreTestUtil;
 import org.apache.hadoop.security.ssl.SSLFactory;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category({ MiscTests.class, SmallTests.class })
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestHttpCookieFlag {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestHttpCookieFlag.class);
 
   private static final String BASEDIR = System.getProperty("test.build.dir", 
"target/test-dir")
     + "/" + 
org.apache.hadoop.hbase.http.TestHttpCookieFlag.class.getSimpleName();
@@ -89,7 +86,7 @@ public class TestHttpCookieFlag {
     }
   }
 
-  @BeforeClass
+  @BeforeAll
   public static void setUp() throws Exception {
     Configuration conf = new Configuration();
     conf.set(HttpServer.FILTER_INITIALIZERS_PROPERTY, 
DummyFilterInitializer.class.getName());
@@ -127,11 +124,11 @@ public class TestHttpCookieFlag {
     HttpURLConnection conn = (HttpURLConnection) new URL(base, 
"/echo").openConnection();
 
     String header = conn.getHeaderField("Set-Cookie");
-    Assert.assertTrue(header != null);
+    assertTrue(header != null);
     List<HttpCookie> cookies = HttpCookie.parse(header);
-    Assert.assertTrue(!cookies.isEmpty());
-    Assert.assertTrue(header.contains("; HttpOnly"));
-    Assert.assertTrue("token".equals(cookies.get(0).getValue()));
+    assertTrue(!cookies.isEmpty());
+    assertTrue(header.contains("; HttpOnly"));
+    assertTrue("token".equals(cookies.get(0).getValue()));
   }
 
   @Test
@@ -141,13 +138,13 @@ public class TestHttpCookieFlag {
     conn.setSSLSocketFactory(clientSslFactory.createSSLSocketFactory());
 
     String header = conn.getHeaderField("Set-Cookie");
-    Assert.assertTrue(header != null);
+    assertTrue(header != null);
 
     List<HttpCookie> cookies = HttpCookie.parse(header);
-    Assert.assertTrue(!cookies.isEmpty());
-    Assert.assertTrue(header.contains("; HttpOnly"));
-    Assert.assertTrue(cookies.get(0).getSecure());
-    Assert.assertTrue("token".equals(cookies.get(0).getValue()));
+    assertTrue(!cookies.isEmpty());
+    assertTrue(header.contains("; HttpOnly"));
+    assertTrue(cookies.get(0).getSecure());
+    assertTrue("token".equals(cookies.get(0).getValue()));
   }
 
   @Test
@@ -162,16 +159,16 @@ public class TestHttpCookieFlag {
       conn.setSSLSocketFactory(clientSslFactory.createSSLSocketFactory());
 
       String header = conn.getHeaderField("Set-Cookie");
-      Assert.assertTrue(header != null);
+      assertTrue(header != null);
       List<HttpCookie> cookies = HttpCookie.parse(header);
-      Assert.assertTrue(!cookies.isEmpty());
-      Assert.assertTrue(header.contains("; HttpOnly"));
-      Assert.assertTrue(cookies.get(0).getSecure());
-      Assert.assertTrue("token".equals(cookies.get(0).getValue()));
+      assertTrue(!cookies.isEmpty());
+      assertTrue(header.contains("; HttpOnly"));
+      assertTrue(cookies.get(0).getSecure());
+      assertTrue("token".equals(cookies.get(0).getValue()));
     }
   }
 
-  @AfterClass
+  @AfterAll
   public static void cleanup() throws Exception {
     server.stop();
     FileUtil.fullyDelete(new File(BASEDIR));
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpRequestLog.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpRequestLog.java
index 904b1d4ca0a..2e5bffacf85 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpRequestLog.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpRequestLog.java
@@ -19,31 +19,26 @@ package org.apache.hadoop.hbase.http;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 
 import org.apache.hbase.thirdparty.org.eclipse.jetty.server.CustomRequestLog;
 import org.apache.hbase.thirdparty.org.eclipse.jetty.server.RequestLog;
 import 
org.apache.hbase.thirdparty.org.eclipse.jetty.server.Slf4jRequestLogWriter;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestHttpRequestLog {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestHttpRequestLog.class);
-
   @Test
   public void testAppenderDefined() {
     RequestLog requestLog = HttpRequestLog.getRequestLog("test");
-    assertNotNull("RequestLog should not be null", requestLog);
+    assertNotNull(requestLog, "RequestLog should not be null");
     assertThat(requestLog, instanceOf(CustomRequestLog.class));
     CustomRequestLog crl = (CustomRequestLog) requestLog;
     assertThat(crl.getWriter(), instanceOf(Slf4jRequestLogWriter.class));
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java
index 72466392827..1b73f302602 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java
@@ -18,10 +18,11 @@
 package org.apache.hadoop.hbase.http;
 
 import static org.hamcrest.Matchers.greaterThan;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -57,7 +58,6 @@ import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import 
org.apache.hadoop.hbase.http.HttpServer.QuotingInputFilter.RequestQuoter;
 import org.apache.hadoop.hbase.http.resource.JerseyResource;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
@@ -74,13 +74,11 @@ import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.hamcrest.MatcherAssert;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -88,11 +86,9 @@ import org.slf4j.LoggerFactory;
 import org.apache.hbase.thirdparty.org.eclipse.jetty.server.ServerConnector;
 import org.apache.hbase.thirdparty.org.eclipse.jetty.util.ajax.JSON;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestHttpServer extends HttpServerFunctionalTest {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestHttpServer.class);
 
   private static final Logger LOG = 
LoggerFactory.getLogger(TestHttpServer.class);
   private static HttpServer server;
@@ -148,7 +144,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
   public static class LongHeaderServlet extends HttpServlet {
     @Override
     public void doGet(HttpServletRequest request, HttpServletResponse 
response) {
-      Assert.assertEquals(63 * 1024, request.getHeader("longheader").length());
+      assertEquals(63 * 1024, request.getHeader("longheader").length());
       response.setStatus(HttpServletResponse.SC_OK);
     }
   }
@@ -164,7 +160,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     }
   }
 
-  @BeforeClass
+  @BeforeAll
   public static void setup() throws Exception {
     Configuration conf = new Configuration();
     conf.setInt(HttpServer.HTTP_MAX_THREADS, MAX_THREADS);
@@ -179,7 +175,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     LOG.info("HTTP server started: " + baseUrl);
   }
 
-  @AfterClass
+  @AfterAll
   public static void cleanup() throws Exception {
     server.stop();
   }
@@ -201,9 +197,8 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
           start.await();
           assertEquals("a:b\nc:d\n", readOutput(new URL(baseUrl, 
"/echo?a=b&c=d")));
           int serverThreads = server.webServer.getThreadPool().getThreads();
-          assertTrue(
-            "More threads are started than expected, Server Threads count: " + 
serverThreads,
-            serverThreads <= MAX_THREADS);
+          assertTrue(serverThreads <= MAX_THREADS,
+            "More threads are started than expected, Server Threads count: " + 
serverThreads);
           LOG.info("Number of threads = " + serverThreads
             + " which is less or equal than the max = " + MAX_THREADS);
         } catch (Exception e) {
@@ -419,7 +414,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
    * authentication filters are set, but authorization is not enabled.
    */
   @Test
-  @Ignore
+  @Disabled
   public void testDisabledAuthorizationOfDefaultServlets() throws Exception {
     Configuration conf = new Configuration();
 
@@ -450,7 +445,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
    * Verify the administrator access for /logs, /stacks, /conf, /logLevel and 
/metrics servlets.
    */
   @Test
-  @Ignore
+  @Disabled
   public void testAuthorizationOfDefaultServlets() throws Exception {
     Configuration conf = new Configuration();
     conf.setBoolean(CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION, 
true);
@@ -491,8 +486,8 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     Mockito.doReturn(null).when(request).getParameterValues("dummy");
     RequestQuoter requestQuoter = new RequestQuoter(request);
     String[] parameterValues = requestQuoter.getParameterValues("dummy");
-    Assert.assertNull("It should return null " + "when there are no values for 
the parameter",
-      parameterValues);
+    assertNull(parameterValues,
+      "It should return null " + "when there are no values for the parameter");
   }
 
   @Test
@@ -502,7 +497,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     Mockito.doReturn(values).when(request).getParameterValues("dummy");
     RequestQuoter requestQuoter = new RequestQuoter(request);
     String[] parameterValues = requestQuoter.getParameterValues("dummy");
-    Assert.assertTrue("It should return Parameter Values", 
Arrays.equals(values, parameterValues));
+    assertTrue(Arrays.equals(values, parameterValues), "It should return 
Parameter Values");
   }
 
   @SuppressWarnings("unchecked")
@@ -533,26 +528,26 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
 
     // authorization OFF
-    Assert.assertTrue(HttpServer.hasAdministratorAccess(context, request, 
response));
+    assertTrue(HttpServer.hasAdministratorAccess(context, request, response));
 
     // authorization ON & user NULL
     response = Mockito.mock(HttpServletResponse.class);
     conf.setBoolean(CommonConfigurationKeys.HADOOP_SECURITY_AUTHORIZATION, 
true);
-    Assert.assertFalse(HttpServer.hasAdministratorAccess(context, request, 
response));
+    assertFalse(HttpServer.hasAdministratorAccess(context, request, response));
     
Mockito.verify(response).sendError(Mockito.eq(HttpServletResponse.SC_UNAUTHORIZED),
       Mockito.anyString());
 
     // authorization ON & user NOT NULL & ACLs NULL
     response = Mockito.mock(HttpServletResponse.class);
     Mockito.when(request.getRemoteUser()).thenReturn("foo");
-    Assert.assertTrue(HttpServer.hasAdministratorAccess(context, request, 
response));
+    assertTrue(HttpServer.hasAdministratorAccess(context, request, response));
 
     // authorization ON & user NOT NULL & ACLs NOT NULL & user not in ACLs
     response = Mockito.mock(HttpServletResponse.class);
     AccessControlList acls = Mockito.mock(AccessControlList.class);
     Mockito.when(acls.isUserAllowed(Mockito.<UserGroupInformation> 
any())).thenReturn(false);
     Mockito.when(context.getAttribute(HttpServer.ADMINS_ACL)).thenReturn(acls);
-    Assert.assertFalse(HttpServer.hasAdministratorAccess(context, request, 
response));
+    assertFalse(HttpServer.hasAdministratorAccess(context, request, response));
     
Mockito.verify(response).sendError(Mockito.eq(HttpServletResponse.SC_FORBIDDEN),
       Mockito.anyString());
 
@@ -560,7 +555,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     response = Mockito.mock(HttpServletResponse.class);
     Mockito.when(acls.isUserAllowed(Mockito.<UserGroupInformation> 
any())).thenReturn(true);
     Mockito.when(context.getAttribute(HttpServer.ADMINS_ACL)).thenReturn(acls);
-    Assert.assertTrue(HttpServer.hasAdministratorAccess(context, request, 
response));
+    assertTrue(HttpServer.hasAdministratorAccess(context, request, response));
 
   }
 
@@ -573,7 +568,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
 
     // requires admin access to instrumentation, FALSE by default
-    Assert.assertTrue(HttpServer.isInstrumentationAccessAllowed(context, 
request, response));
+    assertTrue(HttpServer.isInstrumentationAccessAllowed(context, request, 
response));
 
     // requires admin access to instrumentation, TRUE
     
conf.setBoolean(CommonConfigurationKeys.HADOOP_SECURITY_INSTRUMENTATION_REQUIRES_ADMIN,
 true);
@@ -581,7 +576,7 @@ public class TestHttpServer extends 
HttpServerFunctionalTest {
     AccessControlList acls = Mockito.mock(AccessControlList.class);
     Mockito.when(acls.isUserAllowed(Mockito.<UserGroupInformation> 
any())).thenReturn(false);
     Mockito.when(context.getAttribute(HttpServer.ADMINS_ACL)).thenReturn(acls);
-    Assert.assertFalse(HttpServer.isInstrumentationAccessAllowed(context, 
request, response));
+    assertFalse(HttpServer.isInstrumentationAccessAllowed(context, request, 
response));
   }
 
   @Test
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerLifecycle.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerLifecycle.java
index 63c99387c00..42060482462 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerLifecycle.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerLifecycle.java
@@ -17,38 +17,33 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 
-@Ignore("Hangs on occasion; see HBASE-14430")
-@Category({ MiscTests.class, SmallTests.class })
+@Disabled("Hangs on occasion; see HBASE-14430")
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestHttpServerLifecycle extends HttpServerFunctionalTest {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestHttpServerLifecycle.class);
-
   /**
    * Check that a server is alive by probing the {@link HttpServer#isAlive()} 
method and the text of
    * its toString() description
    * @param server server
    */
   private void assertAlive(HttpServer server) {
-    assertTrue("Server is not alive", server.isAlive());
+    assertTrue(server.isAlive(), "Server is not alive");
     assertToStringContains(server, HttpServer.STATE_DESCRIPTION_ALIVE);
   }
 
   private void assertNotLive(HttpServer server) {
-    assertTrue("Server should not be live", !server.isAlive());
+    assertTrue(!server.isAlive(), "Server should not be live");
     assertToStringContains(server, HttpServer.STATE_DESCRIPTION_NOT_LIVE);
   }
 
@@ -88,8 +83,8 @@ public class TestHttpServerLifecycle extends 
HttpServerFunctionalTest {
    */
   private void assertToStringContains(HttpServer server, String text) {
     String description = server.toString();
-    assertTrue("Did not find \"" + text + "\" in \"" + description + "\"",
-      description.contains(text));
+    assertTrue(description.contains(text),
+      "Did not find \"" + text + "\" in \"" + description + "\"");
   }
 
   /**
@@ -132,6 +127,6 @@ public class TestHttpServerLifecycle extends 
HttpServerFunctionalTest {
     assertAlive(server);
     assertEquals(value, server.getAttribute(key));
     stop(server);
-    assertNull("Server context should have cleared", server.getAttribute(key));
+    assertNull(server.getAttribute(key), "Server context should have cleared");
   }
 }
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerWebapps.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerWebapps.java
index 85aec180c11..a836c67726c 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerWebapps.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServerWebapps.java
@@ -17,28 +17,23 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.FileNotFoundException;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Test webapp loading
  */
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestHttpServerWebapps extends HttpServerFunctionalTest {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestHttpServerWebapps.class);
-
   private static final Logger log = 
LoggerFactory.getLogger(TestHttpServerWebapps.class);
 
   /**
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestPathFilter.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestPathFilter.java
index 75d798cb077..bcb147dacaf 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestPathFilter.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestPathFilter.java
@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 import java.util.Set;
@@ -30,21 +30,17 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
 import org.apache.hadoop.net.NetUtils;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestPathFilter extends HttpServerFunctionalTest {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestPathFilter.class);
 
   private static final Logger LOG = LoggerFactory.getLogger(HttpServer.class);
   private static final Set<String> RECORDS = new TreeSet<>();
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProfileOutputServlet.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProfileOutputServlet.java
index 442fc0e37fe..cfa4c887720 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProfileOutputServlet.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProfileOutputServlet.java
@@ -17,22 +17,17 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.util.Arrays;
 import java.util.List;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 
-@Category({ SmallTests.class })
+@Tag(SmallTests.TAG)
 public class TestProfileOutputServlet {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestProfileOutputServlet.class);
 
   @Test
   public void testSanitization() {
@@ -43,12 +38,8 @@ public class TestProfileOutputServlet {
     }
     List<String> bad = Arrays.asList("function(){console.log(\"oops\")}", 
"<strong>uhoh</strong>");
     for (String input : bad) {
-      try {
-        ProfileOutputServlet.sanitize(input);
-        fail("Expected sanitization of \"" + input + "\" to fail");
-      } catch (RuntimeException e) {
-        // Pass
-      }
+      assertThrows(RuntimeException.class, () -> 
ProfileOutputServlet.sanitize(input),
+        "Expected sanitization of \"" + input + "\" to fail");
     }
   }
 
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProxyUserSpnegoHttpServer.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProxyUserSpnegoHttpServer.java
index 9c1caa1d16c..c059610de8c 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProxyUserSpnegoHttpServer.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestProxyUserSpnegoHttpServer.java
@@ -17,10 +17,10 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.File;
 import java.net.HttpURLConnection;
@@ -31,7 +31,6 @@ import java.util.Set;
 import javax.security.auth.Subject;
 import javax.security.auth.kerberos.KerberosTicket;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.HBaseCommonTestingUtil;
 import org.apache.hadoop.hbase.http.TestHttpServer.EchoServlet;
 import org.apache.hadoop.hbase.http.resource.JerseyResource;
@@ -62,11 +61,10 @@ import org.ietf.jgss.GSSCredential;
 import org.ietf.jgss.GSSManager;
 import org.ietf.jgss.GSSName;
 import org.ietf.jgss.Oid;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -75,11 +73,9 @@ import org.slf4j.LoggerFactory;
  * HttpComponents to verify that the doas= mechanicsm works, and that the 
proxyuser settings are
  * observed.
  */
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestProxyUserSpnegoHttpServer extends HttpServerFunctionalTest {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestProxyUserSpnegoHttpServer.class);
 
   private static final Logger LOG = 
LoggerFactory.getLogger(TestProxyUserSpnegoHttpServer.class);
   private static final String KDC_SERVER_HOST = "localhost";
@@ -97,7 +93,7 @@ public class TestProxyUserSpnegoHttpServer extends 
HttpServerFunctionalTest {
   private static File privilegedKeytab;
   private static File privileged2Keytab;
 
-  @BeforeClass
+  @BeforeAll
   public static void setupServer() throws Exception {
     Configuration conf = new Configuration();
     HBaseCommonTestingUtil htu = new HBaseCommonTestingUtil(conf);
@@ -137,7 +133,7 @@ public class TestProxyUserSpnegoHttpServer extends 
HttpServerFunctionalTest {
     LOG.info("HTTP server started: " + baseUrl);
   }
 
-  @AfterClass
+  @AfterAll
   public static void stopServer() throws Exception {
     try {
       if (null != server) {
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSSLHttpServer.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSSLHttpServer.java
index 41dc2c093d0..31ffc79b22d 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSSLHttpServer.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSSLHttpServer.java
@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -29,7 +29,6 @@ import java.security.GeneralSecurityException;
 import javax.net.ssl.HttpsURLConnection;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.HBaseCommonTestingUtil;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.http.ssl.KeyStoreTestUtil;
@@ -38,11 +37,10 @@ import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.net.NetUtils;
 import org.apache.hadoop.security.ssl.SSLFactory;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -50,13 +48,10 @@ import org.slf4j.LoggerFactory;
  * This testcase issues SSL certificates configures the HttpServer to serve 
HTTPS using the created
  * certficates and calls an echo servlet using the corresponding HTTPS URL.
  */
-@Category({ MiscTests.class, MediumTests.class })
+@Tag(MiscTests.TAG)
+@Tag(MediumTests.TAG)
 public class TestSSLHttpServer extends HttpServerFunctionalTest {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestSSLHttpServer.class);
-
   private static final Logger LOG = 
LoggerFactory.getLogger(TestSSLHttpServer.class);
   private static Configuration serverConf;
   private static HttpServer server;
@@ -66,7 +61,7 @@ public class TestSSLHttpServer extends 
HttpServerFunctionalTest {
   private static SSLFactory clientSslFactory;
   private static HBaseCommonTestingUtil HTU;
 
-  @BeforeClass
+  @BeforeAll
   public static void setup() throws Exception {
 
     HTU = new HBaseCommonTestingUtil();
@@ -106,7 +101,7 @@ public class TestSSLHttpServer extends 
HttpServerFunctionalTest {
     LOG.info("HTTP server started: " + baseUrl);
   }
 
-  @AfterClass
+  @AfterAll
   public static void cleanup() throws Exception {
     server.stop();
     FileUtil.fullyDelete(new File(HTU.getDataTestDir().toString()));
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSecurityHeadersFilter.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSecurityHeadersFilter.java
index 006025e0a97..ec50921d8cd 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSecurityHeadersFilter.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSecurityHeadersFilter.java
@@ -28,25 +28,19 @@ import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.hamcrest.core.Is;
 import org.hamcrest.core.IsEqual;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 
-@Category({ HttpServerFunctionalTest.class, MediumTests.class })
+@Tag(MediumTests.TAG)
 public class TestSecurityHeadersFilter {
   private static URL baseUrl;
   private HttpServer http;
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestSecurityHeadersFilter.class);
-
-  @After
+  @AfterEach
   public void tearDown() throws Exception {
     http.stop();
   }
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestServletFilter.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestServletFilter.java
index 1b95e0dfe23..711f213eeee 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestServletFilter.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestServletFilter.java
@@ -17,9 +17,10 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 import java.util.Random;
@@ -32,24 +33,19 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
 import org.apache.hadoop.net.NetUtils;
 import org.apache.hadoop.util.StringUtils;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestServletFilter extends HttpServerFunctionalTest {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestServletFilter.class);
 
   private static final Logger LOG = LoggerFactory.getLogger(HttpServer.class);
   private static volatile String uri = null;
@@ -94,12 +90,12 @@ public class TestServletFilter extends 
HttpServerFunctionalTest {
 
   private static void assertExceptionContains(String string, Throwable t) {
     String msg = t.getMessage();
-    Assert.assertTrue("Expected to find '" + string + "' but got unexpected 
exception:"
-      + StringUtils.stringifyException(t), msg.contains(string));
+    assertTrue(msg.contains(string), "Expected to find '" + string
+      + "' but got unexpected exception:" + StringUtils.stringifyException(t));
   }
 
   @Test
-  @Ignore
+  @Disabled
   // From stack
   // Its a 'foreign' test, one that came in from hadoop when we copy/pasted 
http
   // It's second class. Could comment it out if only failing test (as per 
@nkeywal – sort of)
@@ -169,12 +165,8 @@ public class TestServletFilter extends 
HttpServerFunctionalTest {
     // start an http server with ErrorFilter
     conf.set(HttpServer.FILTER_INITIALIZERS_PROPERTY, 
ErrorFilter.Initializer.class.getName());
     HttpServer http = createTestServer(conf);
-    try {
-      http.start();
-      fail("expecting exception");
-    } catch (IOException e) {
-      assertExceptionContains("Problem starting http server", e);
-    }
+    IOException e = assertThrows(IOException.class, () -> http.start());
+    assertExceptionContains("Problem starting http server", e);
   }
 
   /**
@@ -187,11 +179,7 @@ public class TestServletFilter extends 
HttpServerFunctionalTest {
     HttpServer http = createTestServer(conf);
     HttpServer.defineFilter(http.webAppContext, "ErrorFilter", 
ErrorFilter.class.getName(), null,
       null);
-    try {
-      http.start();
-      fail("expecting exception");
-    } catch (IOException e) {
-      assertExceptionContains("Unable to initialize WebAppContext", e);
-    }
+    IOException e = assertThrows(IOException.class, () -> http.start());
+    assertExceptionContains("Unable to initialize WebAppContext", e);
   }
 }
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSpnegoHttpServer.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSpnegoHttpServer.java
index 25620d1bc6d..5272921f543 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSpnegoHttpServer.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestSpnegoHttpServer.java
@@ -17,9 +17,10 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.File;
 import java.io.IOException;
@@ -31,7 +32,6 @@ import java.util.Set;
 import javax.security.auth.Subject;
 import javax.security.auth.kerberos.KerberosTicket;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.HBaseCommonTestingUtil;
 import org.apache.hadoop.hbase.http.TestHttpServer.EchoServlet;
 import org.apache.hadoop.hbase.http.resource.JerseyResource;
@@ -61,11 +61,10 @@ import org.ietf.jgss.GSSCredential;
 import org.ietf.jgss.GSSManager;
 import org.ietf.jgss.GSSName;
 import org.ietf.jgss.Oid;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -73,11 +72,9 @@ import org.slf4j.LoggerFactory;
  * Test class for SPNEGO authentication on the HttpServer. Uses Kerby's 
MiniKDC and Apache
  * HttpComponents to verify that a simple Servlet is reachable via SPNEGO and 
unreachable w/o.
  */
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestSpnegoHttpServer extends HttpServerFunctionalTest {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestSpnegoHttpServer.class);
 
   private static final Logger LOG = 
LoggerFactory.getLogger(TestSpnegoHttpServer.class);
   private static final String KDC_SERVER_HOST = "localhost";
@@ -89,7 +86,7 @@ public class TestSpnegoHttpServer extends 
HttpServerFunctionalTest {
   private static File infoServerKeytab;
   private static File clientKeytab;
 
-  @BeforeClass
+  @BeforeAll
   public static void setupServer() throws Exception {
     Configuration conf = new Configuration();
     HBaseCommonTestingUtil htu = new HBaseCommonTestingUtil(conf);
@@ -121,7 +118,7 @@ public class TestSpnegoHttpServer extends 
HttpServerFunctionalTest {
     LOG.info("HTTP server started: " + baseUrl);
   }
 
-  @AfterClass
+  @AfterAll
   public static void stopServer() throws Exception {
     try {
       if (null != server) {
@@ -221,7 +218,7 @@ public class TestSpnegoHttpServer extends 
HttpServerFunctionalTest {
     assertEquals("a:b", EntityUtils.toString(resp.getEntity()).trim());
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test
   public void testMissingConfigurationThrowsException() throws Exception {
     Configuration conf = new Configuration();
     conf.setInt(HttpServer.HTTP_MAX_THREADS, TestHttpServer.MAX_THREADS);
@@ -229,9 +226,12 @@ public class TestSpnegoHttpServer extends 
HttpServerFunctionalTest {
     conf.set("hbase.security.authentication", "kerberos");
     // Intentionally skip keytab and principal
 
-    HttpServer customServer = createTestServerWithSecurity(conf);
-    customServer.addUnprivilegedServlet("echo", "/echo", EchoServlet.class);
-    
customServer.addJerseyResourcePackage(JerseyResource.class.getPackage().getName(),
 "/jersey/*");
-    customServer.start();
+    assertThrows(IllegalArgumentException.class, () -> {
+      HttpServer customServer = createTestServerWithSecurity(conf);
+      customServer.addUnprivilegedServlet("echo", "/echo", EchoServlet.class);
+      
customServer.addJerseyResourcePackage(JerseyResource.class.getPackage().getName(),
+        "/jersey/*");
+      customServer.start();
+    });
   }
 }
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/conf/TestConfServlet.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/conf/TestConfServlet.java
index dc14be96d40..b3ceeec3a70 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/conf/TestConfServlet.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/conf/TestConfServlet.java
@@ -17,9 +17,9 @@
  */
 package org.apache.hadoop.hbase.http.conf;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.StringReader;
 import java.io.StringWriter;
@@ -29,12 +29,10 @@ import java.util.Set;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -47,13 +45,10 @@ import 
org.apache.hbase.thirdparty.org.eclipse.jetty.util.ajax.JSON;
  * Basic test case that the ConfServlet can write configuration to its output 
in XML and JSON
  * format.
  */
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestConfServlet {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestConfServlet.class);
-
   private static final String TEST_KEY = "testconfservlet.key";
   private static final String TEST_VAL = "testval";
 
@@ -125,12 +120,8 @@ public class TestConfServlet {
   @Test
   public void testBadFormat() throws Exception {
     StringWriter sw = new StringWriter();
-    try {
-      ConfServlet.writeResponse(getTestConf(), sw, "not a format");
-      fail("writeResponse with bad format didn't throw!");
-    } catch (ConfServlet.BadFormatException bfe) {
-      // expected
-    }
+    assertThrows(ConfServlet.BadFormatException.class,
+      () -> ConfServlet.writeResponse(getTestConf(), sw, "not a format"));
     assertEquals("", sw.toString());
   }
 }
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/jmx/TestJMXJsonServlet.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/jmx/TestJMXJsonServlet.java
index 7577d5cfd40..a0092c85916 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/jmx/TestJMXJsonServlet.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/jmx/TestJMXJsonServlet.java
@@ -17,9 +17,9 @@
  */
 package org.apache.hadoop.hbase.http.jmx;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.net.HttpURLConnection;
 import java.net.URL;
@@ -27,31 +27,26 @@ import java.net.URLEncoder;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import javax.servlet.http.HttpServletResponse;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.http.HttpServer;
 import org.apache.hadoop.hbase.http.HttpServerFunctionalTest;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestJMXJsonServlet extends HttpServerFunctionalTest {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestJMXJsonServlet.class);
-
   private static final Logger LOG = 
LoggerFactory.getLogger(TestJMXJsonServlet.class);
   private static HttpServer server;
   private static URL baseUrl;
 
-  @BeforeClass
+  @BeforeAll
   public static void setup() throws Exception {
     // Eclipse doesn't pick this up correctly from the plugin
     // configuration in the pom.
@@ -61,7 +56,7 @@ public class TestJMXJsonServlet extends 
HttpServerFunctionalTest {
     baseUrl = getServerURL(server);
   }
 
-  @AfterClass
+  @AfterAll
   public static void cleanup() throws Exception {
     server.stop();
   }
@@ -69,13 +64,13 @@ public class TestJMXJsonServlet extends 
HttpServerFunctionalTest {
   public static void assertReFind(String re, String value) {
     Pattern p = Pattern.compile(re);
     Matcher m = p.matcher(value);
-    assertTrue("'" + p + "' does not match " + value, m.find());
+    assertTrue(m.find(), "'" + p + "' does not match " + value);
   }
 
   public static void assertNotFind(String re, String value) {
     Pattern p = Pattern.compile(re);
     Matcher m = p.matcher(value);
-    assertFalse("'" + p + "' should not match " + value, m.find());
+    assertFalse(m.find(), "'" + p + "' should not match " + value);
   }
 
   @Test
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestAuthenticationFilterInitializer.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestAuthenticationFilterInitializer.java
index 68c48f28273..6ffef18b25e 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestAuthenticationFilterInitializer.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestAuthenticationFilterInitializer.java
@@ -17,29 +17,26 @@
  */
 package org.apache.hadoop.hbase.http.lib;
 
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.ArgumentMatchers.any;
 
 import java.util.Map;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.http.FilterContainer;
 import org.apache.hadoop.hbase.http.HttpServer;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
 import org.apache.hadoop.security.authentication.server.AuthenticationFilter;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestAuthenticationFilterInitializer {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestAuthenticationFilterInitializer.class);
 
   @Test
   public void testConfiguration() throws Exception {
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestStaticUserWebFilter.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestStaticUserWebFilter.java
index 9ad5ab9e9d9..22faab984f8 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestStaticUserWebFilter.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/lib/TestStaticUserWebFilter.java
@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hbase.http.lib;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -30,23 +30,18 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.http.ServerConfigurationKeys;
 import org.apache.hadoop.hbase.http.lib.StaticUserWebFilter.StaticUserFilter;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.mockito.ArgumentCaptor;
 
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestStaticUserWebFilter {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestStaticUserWebFilter.class);
-
   private FilterConfig mockConfig(String username) {
     FilterConfig mock = mock(FilterConfig.class);
     
doReturn(username).when(mock).getInitParameter(ServerConfigurationKeys.HBASE_HTTP_STATIC_USER);
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/log/TestLogLevel.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/log/TestLogLevel.java
index e85ac86a06e..9e470025c39 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/log/TestLogLevel.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/log/TestLogLevel.java
@@ -17,12 +17,12 @@
  */
 package org.apache.hadoop.hbase.http.log;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.File;
 import java.io.IOException;
@@ -41,7 +41,6 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.CommonConfigurationKeys;
 import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
 import org.apache.hadoop.fs.FileUtil;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.HBaseCommonTestingUtil;
 import org.apache.hadoop.hbase.http.HttpConfig;
 import org.apache.hadoop.hbase.http.HttpServer;
@@ -58,20 +57,17 @@ import 
org.apache.hadoop.security.authorize.AccessControlList;
 import org.apache.hadoop.security.ssl.SSLFactory;
 import org.apache.hadoop.test.GenericTestUtils;
 import org.apache.hadoop.util.StringUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test LogLevel.
  */
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestLogLevel {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestLogLevel.class);
 
   private static String keystoresDir;
   private static String sslConfDir;
@@ -120,7 +116,7 @@ public class TestLogLevel {
     }
   }
 
-  @BeforeClass
+  @BeforeAll
   public static void setUp() throws Exception {
     serverConf = new Configuration();
     serverConf.setStrings(LogLevel.READONLY_LOGGERS_CONF_KEY, protectedPrefix);
@@ -200,7 +196,7 @@ public class TestLogLevel {
     return sslConf;
   }
 
-  @AfterClass
+  @AfterAll
   public static void tearDown() {
     if (kdc != null) {
       kdc.stop();
@@ -298,14 +294,14 @@ public class TestLogLevel {
     String expectedLevel) throws Exception {
     withLogLevelServer(protocol, isSpnego, (authority) -> {
       final String level = getLevel(protocol.client, authority, loggerName);
-      assertEquals("Log level not equal to expected: ", expectedLevel, level);
+      assertEquals(expectedLevel, level, "Log level not equal to expected: ");
     });
   }
 
   private void testSetLogLevel(Protocol protocol, boolean isSpnego, String 
loggerName,
     String newLevel) throws Exception {
     String oldLevel = Log4jUtils.getEffectiveLevel(loggerName);
-    assertNotEquals("New level is same as old level: ", newLevel, oldLevel);
+    assertNotEquals(newLevel, oldLevel, "New level is same as old level: ");
 
     try {
       withLogLevelServer(protocol, isSpnego, (authority) -> {
@@ -391,8 +387,8 @@ public class TestLogLevel {
     final String response = cli.fetchSetLevelResponse();
     final String responseLevel = extractEffectiveLevel(response);
     final String currentLevel = Log4jUtils.getEffectiveLevel(logName);
-    assertEquals("new level not equal to expected: ", newLevel, currentLevel);
-    assertSame("new level not equal to response level: ", newLevel, 
responseLevel);
+    assertEquals(newLevel, currentLevel, "new level not equal to expected: ");
+    assertSame(newLevel, responseLevel, "new level not equal to response 
level: ");
   }
 
   /**
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/prometheus/TestPrometheusServlet.java
 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/prometheus/TestPrometheusServlet.java
index 276a2b9ad29..2790b0d631d 100644
--- 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/prometheus/TestPrometheusServlet.java
+++ 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/prometheus/TestPrometheusServlet.java
@@ -18,11 +18,11 @@
 package org.apache.hadoop.hbase.http.prometheus;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
 import org.apache.hadoop.metrics2.MetricsSystem;
@@ -30,21 +30,16 @@ import org.apache.hadoop.metrics2.annotation.Metric;
 import org.apache.hadoop.metrics2.annotation.Metrics;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.MutableCounterLong;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 
 /**
  * Test prometheus Sink.
  */
-@Category({ SmallTests.class, MiscTests.class })
+@Tag(SmallTests.TAG)
+@Tag(MiscTests.TAG)
 public class TestPrometheusServlet {
 
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_TEST_RULE =
-    HBaseClassTestRule.forClass(TestPrometheusServlet.class);
-
   @Test
   public void testPublish() throws IOException {
     // GIVEN
@@ -66,8 +61,8 @@ public class TestPrometheusServlet {
     // THEN
     String writtenMetrics = stream.toString(UTF_8.name());
     System.out.println(writtenMetrics);
-    Assert.assertTrue("The expected metric line is missing from prometheus 
metrics output",
-      
writtenMetrics.contains("test_metrics_num_bucket_create_fails{context=\"dfs\""));
+    
assertTrue(writtenMetrics.contains("test_metrics_num_bucket_create_fails{context=\"dfs\""),
+      "The expected metric line is missing from prometheus metrics output");
 
     metrics.stop();
     metrics.shutdown();
diff --git 
a/hbase-http/src/test/java/org/apache/hadoop/hbase/util/TestJSONBean.java 
b/hbase-http/src/test/java/org/apache/hadoop/hbase/util/TestJSONBean.java
index ef36d19c046..66132f39510 100644
--- a/hbase-http/src/test/java/org/apache/hadoop/hbase/util/TestJSONBean.java
+++ b/hbase-http/src/test/java/org/apache/hadoop/hbase/util/TestJSONBean.java
@@ -17,7 +17,7 @@
  */
 package org.apache.hadoop.hbase.util;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.mock;
@@ -33,12 +33,10 @@ import javax.management.MBeanAttributeInfo;
 import javax.management.MBeanInfo;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.testclassification.MiscTests;
 import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 
 import org.apache.hbase.thirdparty.com.google.common.reflect.TypeToken;
 import org.apache.hbase.thirdparty.com.google.gson.Gson;
@@ -46,11 +44,9 @@ import org.apache.hbase.thirdparty.com.google.gson.Gson;
 /**
  * Test {@link JSONBean}.
  */
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
 public class TestJSONBean {
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestJSONBean.class);
 
   private MBeanServer getMockMBeanServer() throws Exception {
     MBeanServer mbeanServer = mock(MBeanServer.class);

Reply via email to