Issue #23507 annotation-framework now uses junit5 instead of junit4
diff --git a/appserver/common/annotation-framework/pom.xml b/appserver/common/annotation-framework/pom.xml
index 9f43d5e..d4482dd 100755
--- a/appserver/common/annotation-framework/pom.xml
+++ b/appserver/common/annotation-framework/pom.xml
@@ -70,13 +70,14 @@
         </dependency>
 
         <dependency>
-            <groupId>org.glassfish.hk2</groupId>
-            <artifactId>hk2-junitrunner</artifactId>
+            <groupId>org.glassfish.main.tests</groupId>
+            <artifactId>utils</artifactId>
+            <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest</artifactId>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/AnnotationUtilsTest.java b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/AnnotationUtilsTest.java
index d80363d..2eb109c 100644
--- a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/AnnotationUtilsTest.java
+++ b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/AnnotationUtilsTest.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021 Contributors to the Eclipse Foundation
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,48 +17,58 @@
 
 package org.glassfish.apf.test;
 
-import jakarta.inject.Inject;
-
 import org.glassfish.apf.AnnotationHandler;
-import org.glassfish.apf.impl.AnnotationUtils;
+import org.glassfish.apf.test.example.ClassA;
+import org.glassfish.apf.test.example.ClassB;
+import org.glassfish.apf.test.example.ClassC;
+import org.glassfish.apf.test.example.HandlerForClassA;
+import org.glassfish.apf.test.example.HandlerForClassB;
 import org.glassfish.hk2.api.ActiveDescriptor;
 import org.glassfish.hk2.api.ServiceLocator;
-import org.junit.Assert;
-import org.junit.Test;
-import org.jvnet.hk2.testing.junit.HK2Runner;
+import org.glassfish.tests.utils.HK2JUnit5Extension;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
+import jakarta.inject.Inject;
+
+import static org.glassfish.apf.impl.AnnotationUtils.getAnnotationHandlerForDescriptor;
+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;
 
 /**
  * Tests for the AnnotationUtils
  *
  * @author jwells
- *
  */
-public class AnnotationUtilsTest extends HK2Runner {
+@ExtendWith(HK2JUnit5Extension.class)
+public class AnnotationUtilsTest {
+
     @Inject
     private ServiceLocator locator;
 
     @Test
     public void testGetAnnotationHandlerForDescriptor() {
         {
-            ActiveDescriptor<AnnotationHandler> forA =
-                AnnotationUtils.getAnnotationHandlerForDescriptor(locator, ClassA.class);
-            Assert.assertNotNull(forA);
-            Assert.assertFalse(forA.isReified());  // not classloaded by HK2
-            Assert.assertEquals(HandlerForClassA.class.getName(), forA.getImplementation());
+            ActiveDescriptor<AnnotationHandler> forA = getAnnotationHandlerForDescriptor(locator, ClassA.class);
+            assertNotNull(forA);
+            // not classloaded by HK2
+            assertFalse(forA.isReified());
+            assertEquals(HandlerForClassA.class.getName(), forA.getImplementation());
         }
 
         {
-            ActiveDescriptor<AnnotationHandler> forB =
-                AnnotationUtils.getAnnotationHandlerForDescriptor(locator, ClassB.class);
-            Assert.assertNotNull(forB);
-            Assert.assertFalse(forB.isReified());  // not classloaded by HK2
-            Assert.assertEquals(HandlerForClassB.class.getName(), forB.getImplementation());
+            ActiveDescriptor<AnnotationHandler> forB = getAnnotationHandlerForDescriptor(locator, ClassB.class);
+            assertNotNull(forB);
+            // not classloaded by HK2
+            assertFalse(forB.isReified());
+            assertEquals(HandlerForClassB.class.getName(), forB.getImplementation());
         }
 
         {
-            ActiveDescriptor<AnnotationHandler> forC =
-                AnnotationUtils.getAnnotationHandlerForDescriptor(locator, ClassC.class);
-            Assert.assertNull(forC);
+            ActiveDescriptor<AnnotationHandler> forC = getAnnotationHandlerForDescriptor(locator, ClassC.class);
+            assertNull(forC);
         }
 
     }
diff --git a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassA.java b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassA.java
similarity index 95%
rename from appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassA.java
rename to appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassA.java
index 8dfdb30..d1165b2 100644
--- a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassA.java
+++ b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassA.java
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.apf.test;
+package org.glassfish.apf.test.example;
 
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -24,7 +24,6 @@
 
 /**
  * @author jwells
- *
  */
 @Retention(RUNTIME)
 @Target(ElementType.TYPE)
diff --git a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassB.java b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassB.java
similarity index 95%
rename from appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassB.java
rename to appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassB.java
index 8527963..3f6bfef 100644
--- a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassB.java
+++ b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassB.java
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.apf.test;
+package org.glassfish.apf.test.example;
 
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -24,7 +24,6 @@
 
 /**
  * @author jwells
- *
  */
 @Retention(RUNTIME)
 @Target(ElementType.TYPE)
diff --git a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassC.java b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassC.java
similarity index 95%
rename from appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassC.java
rename to appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassC.java
index 44b709a..5287f67 100644
--- a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/ClassC.java
+++ b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/ClassC.java
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.apf.test;
+package org.glassfish.apf.test.example;
 
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -24,7 +24,6 @@
 
 /**
  * @author jwells
- *
  */
 @Retention(RUNTIME)
 @Target(ElementType.TYPE)
diff --git a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/HandlerForClassA.java b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/HandlerForClassA.java
similarity index 97%
rename from appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/HandlerForClassA.java
rename to appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/HandlerForClassA.java
index 70da40d..8b0ad88 100644
--- a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/HandlerForClassA.java
+++ b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/HandlerForClassA.java
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.apf.test;
+package org.glassfish.apf.test.example;
 
 import java.lang.annotation.Annotation;
 
@@ -27,7 +27,6 @@
 
 /**
  * @author jwells
- *
  */
 @Service
 @AnnotationHandlerFor(ClassA.class)
diff --git a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/HandlerForClassB.java b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/HandlerForClassB.java
similarity index 93%
rename from appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/HandlerForClassB.java
rename to appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/HandlerForClassB.java
index acda644..4c90533 100644
--- a/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/HandlerForClassB.java
+++ b/appserver/common/annotation-framework/src/test/java/org/glassfish/apf/test/example/HandlerForClassB.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021 Contributors to the Eclipse Foundation
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,7 +15,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.apf.test;
+package org.glassfish.apf.test.example;
 
 import java.lang.annotation.Annotation;
 
@@ -27,7 +28,6 @@
 
 /**
  * @author jwells
- *
  */
 @Service
 @AnnotationHandlerFor(ClassB.class)