Issue #23507 rest-service now uses junit5 instead of test-ng
diff --git a/nucleus/admin/rest/rest-service/pom.xml b/nucleus/admin/rest/rest-service/pom.xml
index e2788ab..ae8f2d1 100644
--- a/nucleus/admin/rest/rest-service/pom.xml
+++ b/nucleus/admin/rest/rest-service/pom.xml
@@ -117,14 +117,14 @@
             <artifactId>jersey-media-multipart</artifactId>
             <scope>provided</scope>
         </dependency>
-        <!-- <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId>
-            <scope>provided</scope> </dependency> -->
 
-
-        <dependency><!-- for FindBugs -->
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.core</artifactId>
-            <scope>provided</scope>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>jakarta.el</groupId>
diff --git a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/ActionReportTest.java b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/ActionReportTest.java
index a46a103..5922518 100644
--- a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/ActionReportTest.java
+++ b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/ActionReportTest.java
@@ -17,23 +17,27 @@
 package org.glassfish.admin.rest;
 
 import com.sun.enterprise.v3.common.ActionReporter;
+
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.Properties;
-import jakarta.ws.rs.core.MediaType;
+
 import org.glassfish.admin.rest.provider.ActionReportJson2Provider;
 import org.glassfish.admin.rest.utils.xml.RestActionReporter;
 import org.glassfish.api.ActionReport;
 import org.glassfish.api.ActionReport.MessagePart;
-import static org.testng.Assert.*;
-import org.testng.annotations.Test;
+import org.junit.jupiter.api.Test;
+
+import jakarta.ws.rs.core.MediaType;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
- *
  * @author mmares
  */
 public class ActionReportTest {
-    private ActionReportJson2Provider provider = new ActionReportJson2Provider();
+    private final ActionReportJson2Provider provider = new ActionReportJson2Provider();
 
     private String marshall(RestActionReporter ar) throws IOException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
diff --git a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/EncodingTest.java b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/EncodingTest.java
index 081f3a1..6355360 100644
--- a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/EncodingTest.java
+++ b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/EncodingTest.java
@@ -23,6 +23,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+
 import org.glassfish.admin.rest.client.utils.MarshallingUtils;
 import org.glassfish.admin.rest.provider.ActionReportResultHtmlProvider;
 import org.glassfish.admin.rest.provider.ActionReportResultJsonProvider;
@@ -32,8 +33,13 @@
 import org.glassfish.api.ActionReport;
 import org.glassfish.api.ActionReport.ExitCode;
 import org.glassfish.api.ActionReport.MessagePart;
-import static org.testng.AssertJUnit.*;
-import org.testng.annotations.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.aMapWithSize;
+import static org.hamcrest.Matchers.stringContainsInOrder;
+import static org.hamcrest.core.IsInstanceOf.instanceOf;
+import static org.junit.jupiter.api.Assertions.assertAll;
 
 /**
  *
@@ -46,11 +52,13 @@
         ActionReportResultJsonProvider provider = new ActionReportResultJsonProvider();
         ActionReportResult result = new ActionReportResult("test", ar);
         String json = provider.getContent(result);
-        Map responseMap = MarshallingUtils.buildMapFromDocument(json);
-        assertEquals(7, responseMap.size());
-        assertEquals(4, ((Map)responseMap.get("extraProperties")).size());
-        assertTrue(responseMap.get("children") instanceof List);
-        assertTrue(responseMap.get("subReports") instanceof List);
+        Map<?, ?> responseMap = MarshallingUtils.buildMapFromDocument(json);
+        assertAll(
+            () -> assertThat(responseMap, aMapWithSize(7)),
+            () -> assertThat((Map<?, ?>) responseMap.get("extraProperties"), aMapWithSize(4)),
+            () -> assertThat(responseMap.get("children"), instanceOf(List.class)),
+            () -> assertThat(responseMap.get("subReports"), instanceOf(List.class))
+        );
     }
 
     @Test
@@ -59,12 +67,13 @@
         ActionReportResultXmlProvider provider = new ActionReportResultXmlProvider();
         ActionReportResult result = new ActionReportResult("test", ar);
         String xml = provider.getContent(result);
-
-        Map responseMap = MarshallingUtils.buildMapFromDocument(xml);
-        assertEquals(7, responseMap.size());
-        assertEquals(4, ((Map)responseMap.get("extraProperties")).size());
-        assertTrue(responseMap.get("children") instanceof List);
-        assertTrue(responseMap.get("subReports") instanceof List);
+        Map<?, ?> responseMap = MarshallingUtils.buildMapFromDocument(xml);
+        assertAll(
+            () -> assertThat(responseMap, aMapWithSize(7)),
+            () -> assertThat((Map<?, ?>) responseMap.get("extraProperties"), aMapWithSize(4)),
+            () -> assertThat(responseMap.get("children"), instanceOf(List.class)),
+            () -> assertThat(responseMap.get("subReports"), instanceOf(List.class))
+        );
     }
 
     @Test
@@ -73,7 +82,12 @@
         ActionReportResultHtmlProvider provider = new ActionReportResultHtmlProvider();
         ActionReportResult result = new ActionReportResult("test", ar);
         String html = provider.getContent(result);
-        // How to test this?
+        assertThat(html, stringContainsInOrder(
+            "<html><head>",
+            "<h3>test message",
+            "sub report 1 message",
+            "sub report 2 message</h3></div></body></html>"
+        ));
     }
 
     private RestActionReporter buildActionReport() {
diff --git a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/JsonUtilTest.java b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/JsonUtilTest.java
index 1fa01e2..1043d32 100644
--- a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/JsonUtilTest.java
+++ b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/JsonUtilTest.java
@@ -17,14 +17,21 @@
 package org.glassfish.admin.rest;
 
 import java.util.Locale;
+
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 import org.glassfish.admin.rest.composite.CompositeUtil;
 import org.glassfish.admin.rest.model.BaseModel;
 import org.glassfish.admin.rest.utils.JsonUtil;
-import org.testng.Assert;
-import org.testng.annotations.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.arrayWithSize;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  *
@@ -37,18 +44,17 @@
         BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
         model.setStringArray(new String[] {"one", "two"});
         JSONObject json = (JSONObject)JsonUtil.getJsonObject(model);
-        Assert.assertNotNull(json);
+        assertNotNull(json);
         Object o = json.get("stringArray");
-        Assert.assertTrue(o instanceof JSONArray);
+        assertThat(o, instanceOf(JSONArray.class));
         JSONArray array = (JSONArray)o;
-        Assert.assertEquals(array.length(), 2);
-        Assert.assertTrue(contains(array, "one"));
-        Assert.assertTrue(contains(array, "two"));
+        assertEquals(array.length(), 2);
+        assertTrue(contains(array, "one"));
+        assertTrue(contains(array, "two"));
 
         BaseModel model2 = CompositeUtil.instance().unmarshallClass(locale, BaseModel.class, json);
-        Assert.assertNotNull(model2);
-        Assert.assertNotNull(model2.getStringArray());
-        Assert.assertEquals(2, model2.getStringArray().length);
+        assertNotNull(model2);
+        assertThat(model2.getStringArray(), arrayWithSize(2));
     }
 
     private boolean contains(JSONArray array, String text) throws JSONException {
diff --git a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/CompositeUtilTest.java b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/CompositeUtilTest.java
index 71cb72c..b6728cc 100644
--- a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/CompositeUtilTest.java
+++ b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/CompositeUtilTest.java
@@ -18,18 +18,26 @@
 
 import com.sun.enterprise.config.serverbeans.Cluster;
 import com.sun.enterprise.config.serverbeans.customvalidators.ReferenceConstraint;
+
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.Locale;
 import java.util.Set;
-import jakarta.validation.ConstraintViolation;
 
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.glassfish.admin.rest.composite.metadata.AttributeReference;
 import org.glassfish.admin.rest.model.BaseModel;
-import org.testng.Assert;
-import org.testng.annotations.Test;
+import org.junit.jupiter.api.Test;
+
+import jakarta.validation.ConstraintViolation;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.StringStartsWith.startsWith;
+import static org.junit.jupiter.api.Assertions.assertAll;
+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;
 
 /**
  *
@@ -42,7 +50,7 @@
     @Test
     public void modelGeneration() {
         BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
-        Assert.assertNotNull(model);
+        assertNotNull(model);
     }
 
     @Test
@@ -51,9 +59,11 @@
         JSONObject o = new JSONObject(json);
         BaseModel model = CompositeUtil.instance().unmarshallClass(locale, BaseModel.class, o);
 
-        Assert.assertEquals(model.getName(), "testModel");
-        Assert.assertEquals(model.getRelated().size(), 2);
-        Assert.assertTrue(model.getRelated().get(0).getDescription().startsWith("description "));
+        assertAll(
+            () -> assertEquals(model.getName(), "testModel"),
+            () -> assertEquals(model.getRelated().size(), 2)
+        );
+        assertThat(model.getRelated().get(0).getDescription(), startsWith("description "));
     }
 
     @Test
@@ -66,7 +76,7 @@
         model.setConfigRef(null); // Not null. Validation pulled in from the ConfigBean
 
         Set<ConstraintViolation<BaseModel>> violations = cu.validateRestModel(locale, model);
-        Assert.assertEquals(3, violations.size());
+        assertEquals(3, violations.size());
     }
 
     @Test
@@ -80,8 +90,8 @@
         Annotation[] fromCluster = clusterMethod.getAnnotations();
         Annotation[] fromRestModel = modelMethod.getAnnotations();
 
-        Assert.assertEquals(fromCluster.length, fromRestModel.length);
-        Assert.assertEquals(clusterMethod.getAnnotation(ReferenceConstraint.RemoteKey.class).message(),
+        assertEquals(fromCluster.length, fromRestModel.length);
+        assertEquals(clusterMethod.getAnnotation(ReferenceConstraint.RemoteKey.class).message(),
                             modelMethod.getAnnotation(ReferenceConstraint.RemoteKey.class).message());
     }
 
@@ -90,11 +100,13 @@
         Locale locale = null;
         JSONObject o = new JSONObject(json);
         BaseModel model = CompositeUtil.instance().unmarshallClass(locale, BaseModel.class, o);
-        RestModel rmi = (RestModel)model;
+        RestModel<?> rmi = model;
 
-        Assert.assertTrue(rmi.isSet("name"));
-        Assert.assertTrue(rmi.isSet("count"));
-        Assert.assertTrue(rmi.isSet("related"));
-        Assert.assertFalse(rmi.isSet("size"));
+        assertAll(
+            () -> assertTrue(rmi.isSet("name"), "name"),
+            () -> assertTrue(rmi.isSet("count"), "count"),
+            () -> assertTrue(rmi.isSet("related"), "related"),
+            () -> assertFalse(rmi.isSet("size"), "size")
+        );
     }
 }
diff --git a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ModelExtensionTest.java b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ModelExtensionTest.java
index 3124fd7..584a319 100644
--- a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ModelExtensionTest.java
+++ b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ModelExtensionTest.java
@@ -20,6 +20,11 @@
 import java.util.List;
 import jakarta.ws.rs.GET;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+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 org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 import org.glassfish.admin.rest.composite.metadata.Default;
@@ -30,57 +35,54 @@
 import org.glassfish.admin.rest.model.ModelExt1;
 import org.glassfish.admin.rest.model.ModelExt2;
 import org.glassfish.admin.rest.model.RelatedModel;
-import org.testng.Assert;
-import org.testng.annotations.Test;
+import org.junit.jupiter.api.Test;
 
 /**
- *
  * @author jdlee
  */
-@Test
 public class ModelExtensionTest {
     @Test
     public void testNestedModels() {
         BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
         List<RelatedModel> related = model.getRelated();
-        Assert.assertNull(related);
+        assertNull(related);
 
         RelatedModel rm = CompositeUtil.instance().getModel(RelatedModel.class);
         rm.setId("1");
         rm.setDescription("test");
-        related = new ArrayList<RelatedModel>();
+        related = new ArrayList<>();
         related.add(rm);
         model.setRelated(related);
 
         related = model.getRelated();
-        Assert.assertEquals(related.size(), 1);
+        assertEquals(related.size(), 1);
     }
 
     @Test
     public void testModelExtension() {
         BaseModel model = CompositeUtil.instance().getModel(BaseModel.class);
-        Assert.assertTrue(ModelExt1.class.isAssignableFrom(model.getClass()));
-        Assert.assertTrue(ModelExt2.class.isAssignableFrom(model.getClass()));
+        assertTrue(ModelExt1.class.isAssignableFrom(model.getClass()));
+        assertTrue(ModelExt2.class.isAssignableFrom(model.getClass()));
     }
 
     public void testModelInheritance() throws JSONException {
         Model1 m1 = CompositeUtil.instance().getModel(Model1.class);
         Model2 m2 = CompositeUtil.instance().getModel(Model2.class);
 
-        Assert.assertNotNull(m1);
-        Assert.assertNotNull(m2);
+        assertNotNull(m1);
+        assertNotNull(m2);
 
         RestResourceMetadata rrmd = new RestResourceMetadata(new TestResource());
         final List<RestMethodMetadata> getMethods = rrmd.getResourceMethods().get("GET");
         JSONObject name = getJsonObject(getMethods.get(0).toJson(), "response.properties.name");
 
-        Assert.assertNotNull(name, "'name' should not be null. Inherited methods are not showing up in generated class");
-        Assert.assertNotNull(name.get("default"), "The field 'name' should have a default value.");
+        assertNotNull(name, "'name' should not be null. Inherited methods are not showing up in generated class");
+        assertNotNull(name.get("default"), "The field 'name' should have a default value.");
     }
 
     // Works with no dot?
     private JSONObject getJsonObject(JSONObject current, String dottedName) {
-        Assert.assertNotNull(dottedName);
+        assertNotNull(dottedName);
         String[] parts = dottedName.split("\\.");
 
         for (String part : parts) {
@@ -104,13 +106,13 @@
         }
     }
 
-    public static interface Model1 extends RestModel {
+    public interface Model1 extends RestModel {
         @Default(generator=ModelDefaultGenerator.class)
         String getName();
         void setName(String name);
     }
 
-    public static interface Model2 extends Model1 {
+    public interface Model2 extends Model1 {
         @Default(generator=ModelDefaultGenerator.class)
         String getName2();
         void setName2(String name);
diff --git a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ResourceMetadataTest.java b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ResourceMetadataTest.java
index 7b09e9a..8283cdd 100644
--- a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ResourceMetadataTest.java
+++ b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/ResourceMetadataTest.java
@@ -20,8 +20,10 @@
 import org.glassfish.admin.rest.composite.metadata.RestResourceMetadata;
 import org.glassfish.admin.rest.composite.resource.DummiesResource;
 import org.glassfish.admin.rest.composite.resource.DummyResource;
-import org.testng.Assert;
-import org.testng.annotations.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  *
@@ -31,13 +33,13 @@
     @Test
     public void testMetadata() throws JSONException {
         RestResourceMetadata rrmd = new RestResourceMetadata(new DummiesResource());
-        Assert.assertNotNull(rrmd);
-        Assert.assertEquals(rrmd.getResourceMethods().size(), 3);
-        Assert.assertEquals(rrmd.getSubResources().size(), 1);
+        assertNotNull(rrmd);
+        assertEquals(rrmd.getResourceMethods().size(), 3);
+        assertEquals(rrmd.getSubResources().size(), 1);
 
         rrmd = new RestResourceMetadata(new DummyResource());
-        Assert.assertNotNull(rrmd);
-        Assert.assertEquals(rrmd.getResourceMethods().size(), 3);
-        Assert.assertEquals(rrmd.getSubResources().size(), 0);
+        assertNotNull(rrmd);
+        assertEquals(rrmd.getResourceMethods().size(), 3);
+        assertEquals(rrmd.getSubResources().size(), 0);
     }
 }
diff --git a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/RestCollectionTest.java b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/RestCollectionTest.java
index d8b41a4..894aed6 100644
--- a/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/RestCollectionTest.java
+++ b/nucleus/admin/rest/rest-service/src/test/java/org/glassfish/admin/rest/composite/RestCollectionTest.java
@@ -16,21 +16,25 @@
 
 package org.glassfish.admin.rest.composite;
 
-import org.glassfish.admin.rest.composite.metadata.RestModelMetadata;
 import java.util.Map;
 import java.util.Set;
-import static org.testng.AssertJUnit.*;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
+
+import org.glassfish.admin.rest.composite.metadata.RestModelMetadata;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+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;
 
 /**
- *
  * @author jdlee
  */
 public class RestCollectionTest {
     private RestCollection<TestModel> rc;
 
-    @BeforeMethod(alwaysRun=true)
+    @BeforeEach
     public void setUp() {
         rc = new RestCollection();
     }
@@ -136,7 +140,7 @@
     }
 
     public interface TestModel extends RestModel {
-        public String getName();
-        public void setName(String name);
+        String getName();
+        void setName(String name);
     }
 }