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

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new e410aa7ec8 Remove JUnit 4 dependency from incubator and optional 
modules. Those modules are now tested with the JUnit 5 framework only.
e410aa7ec8 is described below

commit e410aa7ec8af8404d417610c9a4db545b14ed689
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Sun Feb 11 21:16:11 2024 +0100

    Remove JUnit 4 dependency from incubator and optional modules.
    Those modules are now tested with the JUnit 5 framework only.
---
 NOTICE                                             |  2 +-
 incubator/build.gradle.kts                         |  8 +--
 .../org/apache/sis/cql/ExpressionReadingTest.java  | 16 ++---
 .../org/apache/sis/cql/ExpressionWritingTest.java  | 12 ++--
 .../test/org/apache/sis/cql/FilterReadingTest.java | 71 +++++++++++-----------
 .../test/org/apache/sis/cql/FilterWritingTest.java | 34 +++++------
 .../test/org/apache/sis/cql/QueryReadingTest.java  |  2 +-
 .../test/org/apache/sis/cql/QueryWritingTest.java  |  2 +-
 .../test/org/apache/sis/map/MapLayersTest.java     |  2 +-
 .../test/org/apache/sis/map/SEPortrayerTest.java   |  2 +-
 .../sis/map/service/GraphicsPortrayerTest.java     |  2 +-
 .../coveragejson/CoverageJsonStoreTest.java        |  2 +-
 .../storage/coveragejson/binding/BindingTest.java  | 10 +--
 .../sis/storage/shapefile/ShapefileStoreTest.java  |  3 +-
 .../sis/storage/shapefile/dbf/DBFIOTest.java       |  2 +-
 .../sis/storage/shapefile/shp/ShapeIOTest.java     |  4 +-
 .../test/module-info.java                          |  2 -
 optional/build.gradle.kts                          |  7 +--
 .../apache/sis/gui/internal/GUIUtilitiesTest.java  |  2 +-
 .../test/module-info.java                          |  2 -
 settings.gradle.kts                                |  1 +
 21 files changed, 88 insertions(+), 100 deletions(-)

diff --git a/NOTICE b/NOTICE
index ff3ba0a520..30192ad466 100644
--- a/NOTICE
+++ b/NOTICE
@@ -36,7 +36,7 @@ https://github.com/aws/aws-sdk-java-v2
 
 The test suite uses software developed by the JUnit community
 under Eclipse public license version 2.
-https://junit.org/junit4/
+https://junit.org/junit5/
 
 
 -------------------------------------------------------------
diff --git a/incubator/build.gradle.kts b/incubator/build.gradle.kts
index 30c8df8ee1..10f43f7745 100644
--- a/incubator/build.gradle.kts
+++ b/incubator/build.gradle.kts
@@ -50,11 +50,8 @@ dependencies {
     api(files("../endorsed/build/classes/java/main/org.apache.sis.portrayal"))
 
     // Test dependencies
-    testImplementation(tests.geoapi)
     testImplementation(tests.junit5)
-    testImplementation(tests.junit4)
-    testRuntimeOnly   (tests.junit)
-    testRuntimeOnly   (tests.junitLauncher)
+    testRuntimeOnly   (tests.jupiter)
     /*
      * Dependencies used only by incubated modules. The dependencies are not 
declared
      * in the global `settings.gradle.kts` because incubated modules are not 
released.
@@ -86,7 +83,7 @@ tasks.compileJava {
 }
 tasks.compileTestJava {
     srcDir.list().forEach {
-        addRead(options.compilerArgs, it, 
"org.apache.sis.test.incubator,org.junit.jupiter.api,junit")
+        addRead(options.compilerArgs, it, 
"org.apache.sis.test.incubator,org.junit.jupiter.api")
     }
     addExportForTests(options.compilerArgs)
 }
@@ -136,6 +133,7 @@ fun addExportForTests(args : MutableList<String>) {
 tasks.test {
     val args = mutableListOf("-enableassertions")
     addExportForTests(args)
+    addExport(args, "org.apache.sis.cql", "org.apache.sis.cql", "ALL-UNNAMED")
     setAllJvmArgs(args)
     testLogging {
         events("FAILED", "STANDARD_OUT", "STANDARD_ERROR")
diff --git 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionReadingTest.java
 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionReadingTest.java
index 2132933a8f..bb3dd4cbb1 100644
--- 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionReadingTest.java
+++ 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionReadingTest.java
@@ -38,8 +38,8 @@ import org.opengis.filter.Literal;
 import org.opengis.filter.ValueReference;
 
 // Test dependencies
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
@@ -201,7 +201,7 @@ public final class ExpressionReadingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("String cannot be cast to Number.")
+    @Disabled("String cannot be cast to Number.")
     public void testAddition2() throws CQLException {
         final String cql = "'test' + '23'";
         final Object obj = CQL.parseExpression(cql);
@@ -239,7 +239,7 @@ public final class ExpressionReadingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Function `max` not yet supported.")
+    @Disabled("Function `max` not yet supported.")
     public void testFunction1() throws CQLException {
         final String cql = "max(\"att\",15)";
         final Object obj = CQL.parseExpression(cql);
@@ -249,7 +249,7 @@ public final class ExpressionReadingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Function `min` not yet supported.")
+    @Disabled("Function `min` not yet supported.")
     public void testFunction2() throws CQLException {
         final String cql = "min(\"att\",cos(3.14))";
         final Object obj = CQL.parseExpression(cql);
@@ -557,7 +557,7 @@ public final class ExpressionReadingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Function `max` not yet supported.")
+    @Disabled("Function `max` not yet supported.")
     public void testCombine3() throws CQLException {
         final String cql = "3*max(val,15)+2/4";
         final Object obj = CQL.parseExpression(cql);
@@ -575,7 +575,7 @@ public final class ExpressionReadingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Function `max` not yet supported.")
+    @Disabled("Function `max` not yet supported.")
     public void testCombine4() throws CQLException {
         final String cql = "3 * max ( val , 15 ) + 2 / 4";
         final Object obj = CQL.parseExpression(cql);
@@ -593,7 +593,7 @@ public final class ExpressionReadingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Difference in the class argument of `property(…)`.")
+    @Disabled("Difference in the class argument of `property(…)`.")
     public void testCombine5() throws CQLException {
         final String cql = "(\"NB-Curistes\"*50)/12000";
         final Object obj = CQL.parseExpression(cql);
diff --git 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionWritingTest.java
 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionWritingTest.java
index 7725e595ff..c72b1341d3 100644
--- 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionWritingTest.java
+++ 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/ExpressionWritingTest.java
@@ -27,8 +27,8 @@ import org.opengis.filter.Expression;
 import org.opengis.feature.Feature;
 
 // Test dependencies
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
@@ -93,7 +93,7 @@ public final class ExpressionWritingTest extends CQLTestCase {
     }
 
     @Test
-    @Ignore("Unsupported temporal field: Year")
+    @Disabled("Unsupported temporal field: Year")
     public void testDate() throws CQLException, ParseException{
         final Expression<Feature,?> exp = 
FF.literal(Instant.parse("2012-03-21T05:42:36Z"));
         final String cql = CQL.write(exp);
@@ -151,7 +151,7 @@ public final class ExpressionWritingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Function `max` not yet supported.")
+    @Disabled("Function `max` not yet supported.")
     public void testFunction1() throws CQLException {
         final Expression<Feature,?> exp = FF.function("max", 
FF.property("att"), FF.literal(15));
         final String cql = CQL.write(exp);
@@ -160,7 +160,7 @@ public final class ExpressionWritingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Function `min` not yet supported.")
+    @Disabled("Function `min` not yet supported.")
     public void testFunction2() throws CQLException {
         final Expression<Feature,?> exp = 
FF.function("min",FF.property("att"), FF.function("cos", FF.literal(3.14d)));
         final String cql = CQL.write(exp);
@@ -196,7 +196,7 @@ public final class ExpressionWritingTest extends 
CQLTestCase {
     }
 
     @Test
-    @Ignore("Function `max` not yet supported.")
+    @Disabled("Function `max` not yet supported.")
     public void testCombine3() throws CQLException {
         final Expression<Feature,?> exp =
                 FF.add(
diff --git 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterReadingTest.java
 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterReadingTest.java
index 03e26bea50..d88f804756 100644
--- 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterReadingTest.java
+++ 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterReadingTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.sis.cql;
 
-import java.util.List;
 import java.util.Arrays;
 import java.util.Locale;
 import java.util.Iterator;
@@ -41,9 +40,9 @@ import org.apache.sis.referencing.CommonCRS;
 import org.apache.sis.util.internal.UnmodifiableArrayList;
 
 // Test dependencies
-import org.junit.Ignore;
-import org.junit.Test;
-import static org.opengis.test.Assert.*;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import static org.junit.jupiter.api.Assertions.*;
 
 
 /**
@@ -146,7 +145,8 @@ public final class FilterReadingTest extends CQLTestCase {
                 new LinearRing[0]
                 );
 
-        final String cql = "NOT (INTERSECTS(BoundingBox, ENVELOPE(10, 20, 40, 
30)) OR CONTAINS(BoundingBox, POINT(12.1 28.9))) AND BBOX(BoundingBox, 
10,20,30,40)";
+        final String cql = "NOT (INTERSECTS(BoundingBox, ENVELOPE(10, 20, 40, 
30)) "
+                + "OR CONTAINS(BoundingBox, POINT(12.1 28.9))) AND 
BBOX(BoundingBox, 10,20,30,40)";
         final Filter<?> filter = CQL.parseFilter(cql);
         assertEquals(
                 FF.and(
@@ -183,13 +183,14 @@ public final class FilterReadingTest extends CQLTestCase {
     @Test
     public void testNotIn() throws CQLException {
         final Filter<?> filter = CQL.parseFilter("att NOT IN ( 15, 30, 
'hello')");
-        assertInstanceOf("NOT", LogicalOperator.class, filter);
         assertEquals(LogicalOperatorName.NOT, filter.getOperatorType());
-        verifyIn((LogicalOperator<?>) ((LogicalOperator<?>) 
filter).getOperands().get(0));
+        LogicalOperator<?> logical = assertInstanceOf(LogicalOperator.class, 
filter);
+        logical = assertInstanceOf(LogicalOperator.class, 
logical.getOperands().get(0));
+        verifyIn(logical);
     }
 
     private void verifyIn(final LogicalOperator<?> filter) {
-        assertInstanceOf("OR", LogicalOperator.class, filter);
+        assertInstanceOf(LogicalOperator.class, filter);
         assertEquals(LogicalOperatorName.OR, filter.getOperatorType());
         final Iterator<?> expected = Arrays.asList(15, 30, "hello").iterator();
         for (final Filter<?> operand : filter.getOperands()) {
@@ -302,14 +303,12 @@ public final class FilterReadingTest extends CQLTestCase {
 
     private void testBBOX(final String cql, final String att, final Envelope 
env) throws CQLException {
         final Filter<?> filter = CQL.parseFilter(cql);
-        assertInstanceOf(null, BinarySpatialOperator.class, filter);
+        final BinarySpatialOperator<?> bsp = 
assertInstanceOf(BinarySpatialOperator.class, filter);
         assertEquals(SpatialOperatorName.BBOX, filter.getOperatorType());
-        assertEquals(FF.property(att), 
((BinarySpatialOperator)filter).getOperand1());
-        assertEquals(FF.property(att), 
((BinarySpatialOperator)filter).getOperand1());
-        final Expression<?, ?> arg2 = ((BinarySpatialOperator) 
filter).getOperand2();
-        assertTrue("Second argument should be a literal expression", arg2 
instanceof Literal);
-        final AbstractEnvelope argEnv = AbstractEnvelope.castOrCopy((Envelope) 
((Literal<?, ?>) arg2).getValue());
-        assertTrue(argEnv.equals(env, 1e-2, false));
+        assertEquals(FF.property(att), bsp.getOperand1());
+        final Literal<?,?> literal = assertInstanceOf(Literal.class, 
bsp.getOperand2());
+        final Envelope value = assertInstanceOf(Envelope.class, 
literal.getValue());
+        assertTrue(AbstractEnvelope.castOrCopy(value).equals(env, 1e-2, 
false));
     }
 
     /**
@@ -318,17 +317,17 @@ public final class FilterReadingTest extends CQLTestCase {
     @Test
     public void testDWithin() throws CQLException {
         final String cql = "DWITHIN(BoundingBox, POINT(12.1 28.9), 10, 
'meters')";
-        final DistanceOperator<?> filter = (DistanceOperator<?>) 
CQL.parseFilter(cql);
+        final DistanceOperator<?> filter = 
assertInstanceOf(DistanceOperator.class, CQL.parseFilter(cql));
         assertEquals(DistanceOperatorName.WITHIN, filter.getOperatorType());
 
-        final List expressions = filter.getExpressions();
+        final var expressions = filter.getExpressions();
         assertEquals(FF.property("BoundingBox"), expressions.get(0));
         final Quantity<Length> distance = filter.getDistance();
         assertEquals(10.0, distance.getValue().doubleValue(), DELTA);
         assertEquals(Units.METRE, distance.getUnit());
 
-        final Literal<?,?> literal = (Literal<?,?>) expressions.get(1);
-        final Geometry value = (Geometry) literal.getValue();
+        final Literal<?,?> literal = assertInstanceOf(Literal.class, 
expressions.get(1));
+        final Geometry value = assertInstanceOf(Geometry.class, 
literal.getValue());
         assertTrue(baseGeometryPoint.equalsExact(value));
     }
 
@@ -356,13 +355,13 @@ public final class FilterReadingTest extends CQLTestCase {
         final String name = operator.identifier().toUpperCase(Locale.US);
         final String cql = name + "(\"att\", POLYGON((10 20, 30 40, 50 60, 10 
20))" + suffix + ')';
         final Filter<?> filter = CQL.parseFilter(cql);
-        assertInstanceOf(name, SpatialOperator.class, filter);
-        assertEquals(name, operator, filter.getOperatorType());
+        assertInstanceOf(SpatialOperator.class, filter, name);
+        assertEquals(operator, filter.getOperatorType(), name);
 
-        final List expressions = filter.getExpressions();
+        final var expressions = filter.getExpressions();
         assertEquals(FF.property("att"), expressions.get(0));
-        final Literal<?,?> literal = (Literal<?,?>) expressions.get(1);
-        final Geometry value = (Geometry) literal.getValue();
+        final Literal<?,?> literal = assertInstanceOf(Literal.class, 
expressions.get(1));
+        final Geometry value = assertInstanceOf(Geometry.class, 
literal.getValue());
         assertTrue(baseGeometry.equalsExact(value));
         return filter;
     }
@@ -379,7 +378,7 @@ public final class FilterReadingTest extends CQLTestCase {
 
     private void testCombine(final String cql) throws CQLException {
         final Filter<?> filter = CQL.parseFilter(cql);
-        assertInstanceOf("OR", LogicalOperator.class, filter);
+        assertInstanceOf(LogicalOperator.class, filter);
         assertEquals(LogicalOperatorName.OR, filter.getOperatorType());
         assertEquals(
                 FF.or(
@@ -394,7 +393,7 @@ public final class FilterReadingTest extends CQLTestCase {
     public void testCombine3() throws CQLException {
         final String cql = "(NOT att1 = 15) AND (att2 = 15 OR att3 BETWEEN 15 
AND 30) AND (att4 BETWEEN 1 AND 2)";
         final Filter<?> filter = CQL.parseFilter(cql);
-        assertInstanceOf("AND", LogicalOperator.class, filter);
+        assertInstanceOf(LogicalOperator.class, filter);
         assertEquals(LogicalOperatorName.AND, filter.getOperatorType());
         assertEquals(
                 FF.and(
@@ -412,11 +411,11 @@ public final class FilterReadingTest extends CQLTestCase {
     }
 
     @Test
-    @Ignore("Mismatched type in `property(…, type)`.")
+    @Disabled("Mismatched type in `property(…, type)`.")
     public void testCombine4() throws CQLException {
         final String cql = "(x+7) <= (y-9)";
         final Filter<?> filter = CQL.parseFilter(cql);
-        assertInstanceOf("<=", BinaryComparisonOperator.class, filter);
+        assertInstanceOf(BinaryComparisonOperator.class, filter);
         assertEquals(ComparisonOperatorName.PROPERTY_IS_LESS_THAN_OR_EQUAL_TO, 
filter.getOperatorType());
         assertEquals(
                 FF.lessOrEqual(
@@ -433,14 +432,14 @@ public final class FilterReadingTest extends CQLTestCase {
             final String name = operator.identifier().toUpperCase(Locale.US);
             final String cql  = "att " + name + " 2012-03-21T05:42:36Z";
             final Filter<?> filter = CQL.parseFilter(cql);
-            assertInstanceOf(name, TemporalOperator.class, filter);
-            assertEquals(name, operator, filter.getOperatorType());
-            final List expressions = filter.getExpressions();
-
-            assertEquals(name, FF.property("att"), expressions.get(0));
-            final Literal<?,?> literal = (Literal<?,?>) expressions.get(1);
-            final TemporalAccessor time = (TemporalAccessor) 
literal.getValue();
-            assertEquals(name, Instant.parse("2012-03-21T05:42:36Z"), 
Instant.from(time));
+            assertInstanceOf(TemporalOperator.class, filter, name);
+            assertEquals(operator, filter.getOperatorType(),name);
+            final var expressions = filter.getExpressions();
+
+            assertEquals(FF.property("att"), expressions.get(0), name);
+            final Literal<?,?> literal = assertInstanceOf(Literal.class, 
expressions.get(1));
+            final TemporalAccessor time = 
assertInstanceOf(TemporalAccessor.class, literal.getValue());
+            assertEquals(Instant.parse("2012-03-21T05:42:36Z"), 
Instant.from(time), name);
 
             // Skip any non-standard operators added by user.
             if (operator == TemporalOperatorName.ANY_INTERACTS) break;
diff --git 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterWritingTest.java
 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterWritingTest.java
index 439b0beee3..56a416dd68 100644
--- 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterWritingTest.java
+++ 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/FilterWritingTest.java
@@ -29,8 +29,8 @@ import org.apache.sis.measure.Quantities;
 import org.apache.sis.measure.Units;
 
 // Test dependencies
-import org.junit.Test;
-import org.junit.Ignore;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.Disabled;
 import static org.junit.jupiter.api.Assertions.*;
 
 
@@ -175,7 +175,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att <= 15", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testPropertyIsLike() throws CQLException {
         final Filter filter = FF.like(FF.property("att"),"%hello");
@@ -280,7 +280,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("WITHIN(att, POLYGON ((10 20, 30 40, 50 60, 10 20)))", 
cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testAfter() throws CQLException, ParseException {
         final Filter filter = FF.after(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -289,7 +289,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att AFTER 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testAnyInteracts() throws CQLException, ParseException {
         final Filter filter = FF.anyInteracts(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -298,7 +298,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att ANYINTERACTS 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testBefore() throws CQLException, ParseException {
         final Filter filter = FF.before(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -307,7 +307,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att BEFORE 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testBegins() throws CQLException, ParseException {
         final Filter filter = FF.begins(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -316,7 +316,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att BEGINS 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testBegunBy() throws CQLException, ParseException {
         final Filter filter = FF.begunBy(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -325,7 +325,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att BEGUNBY 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testDuring() throws CQLException, ParseException {
         final Filter filter = FF.during(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -334,7 +334,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att DURING 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testEndedBy() throws CQLException, ParseException {
         final Filter filter = FF.endedBy(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -343,7 +343,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att ENDEDBY 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testEnds() throws CQLException, ParseException {
         final Filter filter = FF.ends(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -352,7 +352,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att ENDS 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testMeets() throws CQLException, ParseException {
         final Filter filter = FF.meets(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -361,7 +361,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att MEETS 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testMetBy() throws CQLException, ParseException {
         final Filter filter = FF.metBy(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -370,7 +370,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att METBY 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testOverlappedBy() throws CQLException, ParseException {
         final Filter filter = FF.overlappedBy(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -379,7 +379,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att OVERLAPPEDBY 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testTcontains() throws CQLException, ParseException {
         final Filter filter = FF.tcontains(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -388,7 +388,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att TCONTAINS 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testTequals() throws CQLException, ParseException {
         final Filter filter = FF.tequals(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
@@ -397,7 +397,7 @@ public final class FilterWritingTest extends CQLTestCase {
         assertEquals("att TEQUALS 2012-03-21T05:42:36Z", cql);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testToverlaps() throws CQLException, ParseException {
         final Filter filter = FF.toverlaps(FF.property("att"), 
FF.literal(Instant.parse("2012-03-21T05:42:36Z")));
diff --git 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryReadingTest.java
 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryReadingTest.java
index 52dc4a3517..57c002625c 100644
--- 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryReadingTest.java
+++ 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryReadingTest.java
@@ -20,7 +20,7 @@ import java.util.Arrays;
 import org.opengis.filter.SortOrder;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 
diff --git 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryWritingTest.java
 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryWritingTest.java
index e5e773239e..464d4e95ae 100644
--- 
a/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryWritingTest.java
+++ 
b/incubator/src/org.apache.sis.cql/test/org/apache/sis/cql/QueryWritingTest.java
@@ -20,7 +20,7 @@ import java.util.Arrays;
 import org.opengis.filter.SortOrder;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 
diff --git 
a/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/MapLayersTest.java
 
b/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/MapLayersTest.java
index f92037456b..1b8f865b8b 100644
--- 
a/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/MapLayersTest.java
+++ 
b/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/MapLayersTest.java
@@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.sis.measure.NumberRange;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
diff --git 
a/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/SEPortrayerTest.java
 
b/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/SEPortrayerTest.java
index 3c037bf17e..cde2a88bb3 100644
--- 
a/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/SEPortrayerTest.java
+++ 
b/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/SEPortrayerTest.java
@@ -65,7 +65,7 @@ import org.apache.sis.storage.event.StoreListener;
 import org.apache.sis.util.iso.Names;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
diff --git 
a/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/service/GraphicsPortrayerTest.java
 
b/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/service/GraphicsPortrayerTest.java
index 4f57f046b9..b65b98e26d 100644
--- 
a/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/service/GraphicsPortrayerTest.java
+++ 
b/incubator/src/org.apache.sis.portrayal.map/test/org/apache/sis/map/service/GraphicsPortrayerTest.java
@@ -46,7 +46,7 @@ import org.apache.sis.style.se1.Symbology;
 
 // Test dependencies
 import static org.junit.jupiter.api.Assertions.*;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 
 /**
diff --git 
a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
 
b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
index 0c36d775b3..9136ac59e1 100644
--- 
a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
+++ 
b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
@@ -42,7 +42,7 @@ import org.apache.sis.referencing.CRS;
 import org.apache.sis.referencing.CommonCRS;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
diff --git 
a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/BindingTest.java
 
b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/BindingTest.java
index 92fd9e19d7..34497f0da7 100644
--- 
a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/BindingTest.java
+++ 
b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/BindingTest.java
@@ -34,9 +34,9 @@ import jakarta.json.bind.JsonbConfig;
 import org.eclipse.yasson.YassonConfig;
 
 // Test dependencies
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
@@ -80,12 +80,12 @@ public class BindingTest {
         assertEquals(formattedJson, jsonb.toJson(candidate));
     }
 
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass() {
         jsonb = JsonbBuilder.create(CONFIG);
     }
 
-    @AfterClass
+    @AfterAll
     public static void afterClass() throws Exception {
         jsonb.close();
     }
diff --git 
a/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/ShapefileStoreTest.java
 
b/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/ShapefileStoreTest.java
index a5f743e706..1aba1cbb2d 100644
--- 
a/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/ShapefileStoreTest.java
+++ 
b/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/ShapefileStoreTest.java
@@ -44,8 +44,7 @@ import org.apache.sis.feature.internal.AttributeConvention;
 
 // Test dependencies
 import static org.junit.jupiter.api.Assertions.*;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 // Specific to the geoapi-3.1 and geoapi-4.0 branches:
 import org.opengis.feature.AttributeType;
diff --git 
a/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/dbf/DBFIOTest.java
 
b/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/dbf/DBFIOTest.java
index bf86fae187..e6665df3d5 100644
--- 
a/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/dbf/DBFIOTest.java
+++ 
b/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/dbf/DBFIOTest.java
@@ -33,7 +33,7 @@ import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.StorageConnector;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
diff --git 
a/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/shp/ShapeIOTest.java
 
b/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/shp/ShapeIOTest.java
index 0cd236e313..504dc2dbca 100644
--- 
a/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/shp/ShapeIOTest.java
+++ 
b/incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/shp/ShapeIOTest.java
@@ -17,10 +17,8 @@
 package org.apache.sis.storage.shapefile.shp;
 
 import java.io.IOException;
-import java.nio.ByteBuffer;
 import java.net.URISyntaxException;
 import java.net.URL;
-import java.nio.channels.WritableByteChannel;
 import java.nio.file.*;
 import org.locationtech.jts.geom.CoordinateSequence;
 import org.locationtech.jts.geom.LineString;
@@ -38,7 +36,7 @@ import org.apache.sis.geometry.Envelope2D;
 import org.apache.sis.referencing.CommonCRS;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 
 
diff --git a/incubator/src/org.apache.sis.test.incubator/test/module-info.java 
b/incubator/src/org.apache.sis.test.incubator/test/module-info.java
index fed9415c58..590feebb10 100644
--- a/incubator/src/org.apache.sis.test.incubator/test/module-info.java
+++ b/incubator/src/org.apache.sis.test.incubator/test/module-info.java
@@ -21,9 +21,7 @@
  * @author  Martin Desruisseaux (Geomatys)
  */
 module org.apache.sis.test.incubator {
-    requires transitive junit;
     requires transitive org.junit.jupiter.api;
-    requires transitive org.opengis.geoapi.conformance;
     requires org.apache.sis.feature;
     requires org.apache.sis.storage;
     requires org.locationtech.jts;
diff --git a/optional/build.gradle.kts b/optional/build.gradle.kts
index 323605fdb8..37ecbf7ccf 100644
--- a/optional/build.gradle.kts
+++ b/optional/build.gradle.kts
@@ -70,11 +70,8 @@ dependencies {
     runtimeOnly   (drivers.derby.tools)
 
     // Test dependencies
-    testImplementation(tests.geoapi)
     testImplementation(tests.junit5)
-    testImplementation(tests.junit4)
-    testRuntimeOnly   (tests.junit)
-    testRuntimeOnly   (tests.junitLauncher)
+    testRuntimeOnly   (tests.jupiter)
 }
 
 /*
@@ -89,7 +86,7 @@ tasks.compileJava {
 tasks.compileTestJava {
     patchForTests(options.compilerArgs);
     srcDir.list().forEach {
-        addRead(options.compilerArgs, it, 
"org.apache.sis.test.optional,org.junit.jupiter.api,junit")
+        addRead(options.compilerArgs, it, 
"org.apache.sis.test.optional,org.junit.jupiter.api")
     }
 }
 
diff --git 
a/optional/src/org.apache.sis.gui/test/org/apache/sis/gui/internal/GUIUtilitiesTest.java
 
b/optional/src/org.apache.sis.gui/test/org/apache/sis/gui/internal/GUIUtilitiesTest.java
index 0dbf2a8791..2d868cb7e4 100644
--- 
a/optional/src/org.apache.sis.gui/test/org/apache/sis/gui/internal/GUIUtilitiesTest.java
+++ 
b/optional/src/org.apache.sis.gui/test/org/apache/sis/gui/internal/GUIUtilitiesTest.java
@@ -21,7 +21,7 @@ import javafx.scene.control.TreeItem;
 import javafx.scene.paint.Color;
 
 // Test dependencies
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import static org.junit.jupiter.api.Assertions.*;
 import org.apache.sis.test.TestCase;
 import org.apache.sis.test.TestUtilities;
diff --git a/optional/src/org.apache.sis.test.optional/test/module-info.java 
b/optional/src/org.apache.sis.test.optional/test/module-info.java
index bb74d69566..37055ad2c5 100644
--- a/optional/src/org.apache.sis.test.optional/test/module-info.java
+++ b/optional/src/org.apache.sis.test.optional/test/module-info.java
@@ -23,7 +23,5 @@
  * @since   1.4
  */
 module org.apache.sis.test.optional {
-    requires transitive junit;
     requires transitive org.junit.jupiter.api;
-    requires transitive org.opengis.geoapi.conformance;
 }
diff --git a/settings.gradle.kts b/settings.gradle.kts
index c0db8b1586..dfae83c775 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -75,6 +75,7 @@ dependencyResolutionManagement {
             library("junit4",        "junit",                  "junit")        
          .version {strictly("4.13.2")}
             library("junit5",        "org.junit.jupiter",      
"junit-jupiter-api")      .version {strictly("5.10.1")}
             library("junit",         "org.junit.vintage",      
"junit-vintage-engine")   .version {strictly("5.10.1")}
+            library("jupiter",       "org.junit.jupiter",      
"junit-jupiter-engine")   .version {strictly("5.10.1")}
             library("junitLauncher", "org.junit.platform",     
"junit-platform-launcher").version {strictly("1.10.1")}
             library("jama",          "gov.nist.math",          "jama")         
          .version {strictly("1.0.3")}
             library("geographiclib", "net.sf.geographiclib",   
"GeographicLib-Java")     .version {strictly("2.0")}


Reply via email to