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

asf-gitbox-commits pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 57b84010bf46fc5be2d844c0be508603594c08cc
Merge: dcb92d9e4a 70ade19574
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Sat Oct 17 23:07:24 2026 +0200

    Merge branch 'geoapi-3.1'

 README.md                                          |   2 +-
 endorsed/build.gradle.kts                          |   2 +-
 .../org/apache/sis/console/IdentifierCommand.java  |   5 +-
 .../org.apache.sis.feature/main/module-info.java   |   2 +-
 .../main/org/apache/sis/coverage/Category.java     |   3 +-
 .../apache/sis/coverage/grid/GridCRSBuilder.java   |  10 +-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |   2 +-
 .../org/apache/sis/coverage/grid/GridGeometry.java |  45 +-
 .../sis/coverage/grid/ValuesAtPointIterator.java   |  11 +-
 .../org/apache/sis/coverage/grid/package-info.java |   2 +-
 .../org/apache/sis/feature/EnvelopeOperation.java  |   8 +-
 .../sis/feature/FeatureOperationException.java     |  46 +-
 .../sis/feature/InvalidFeatureException.java       |  33 +-
 .../main/org/apache/sis/feature/package-info.java  |   2 +-
 .../main/org/apache/sis/image/OverviewImage.java   |  13 +-
 .../org/apache/sis/image/SourceAlignedImage.java   |   8 +-
 .../org.apache.sis.metadata/main/module-info.java  |   2 +-
 .../org/apache/sis/metadata/AbstractMetadata.java  |  11 -
 .../org/apache/sis/metadata/MetadataStandard.java  |  22 -
 .../sis/metadata/MetadataVisitorException.java     |  52 ++-
 .../iso/extent/NotSpatioTemporalException.java     |   5 +-
 .../main/org/apache/sis/metadata/package-info.java |   2 +-
 .../sis/metadata/sql/internal/shared/Dialect.java  |  22 +
 .../metadata/sql/internal/shared/SQLBuilder.java   |   3 +-
 .../metadata/sql/internal/shared/ScriptRunner.java |   4 +-
 .../sis/metadata/sql/internal/shared/Supports.java |   8 +-
 .../main/org/apache/sis/openoffice/CalcAddins.java |  20 +-
 .../gazetteer/GeohashReferenceSystem.java          |   7 +-
 .../gazetteer/MilitaryGridReferenceSystem.java     |  18 +-
 .../main/module-info.java                          |   2 +-
 .../main/org/apache/sis/geometry/Envelope2D.java   |   3 +-
 .../sis/io/wkt/UnparsableObjectException.java      |  49 ++-
 .../main/org/apache/sis/io/wkt/package-info.java   |   2 +-
 .../sis/parameter/MapProjectionDescriptor.java     |   5 +-
 .../sis/referencing/AbstractIdentifiedObject.java  |  12 -
 .../sis/referencing/crs/DefaultProjectedCRS.java   |   5 +-
 .../sis/referencing/cs/DefaultCompoundCS.java      |   5 +-
 .../factory/ConcurrentAuthorityFactory.java        |   2 +-
 .../factory/IdentifiedObjectFinder.java            |   2 +-
 .../referencing/factory/sql/EPSGCodeFinder.java    |  73 +++-
 .../sis/referencing/factory/sql/EPSGInstaller.java |   4 +
 .../sis/referencing/factory/sql/SQLTranslator.java |  16 +-
 .../sis/referencing/factory/sql/package-info.java  |   2 +-
 .../operation/AbstractCoordinateOperation.java     |   5 +-
 .../referencing/operation/DefaultConversion.java   |  29 +-
 .../operation/DefaultOperationMethod.java          |   5 +-
 .../operation/DefaultPassThroughOperation.java     |   5 +-
 .../sis/referencing/operation/package-info.java    |   2 +-
 .../operation/projection/AlbersEqualArea.java      |  13 +-
 .../operation/projection/AzimuthalEquidistant.java |   5 +-
 .../operation/projection/CassiniSoldner.java       |   5 +-
 .../operation/projection/CylindricalEqualArea.java |  13 +-
 .../projection/EquidistantCylindrical.java         |  13 +-
 .../projection/LambertAzimuthalEqualArea.java      |  13 +-
 .../projection/LambertConicConformal.java          |  13 +-
 .../referencing/operation/projection/Mercator.java |  13 +-
 .../projection/ModifiedAzimuthalEquidistant.java   |  12 +-
 .../operation/projection/Mollweide.java            |   7 +-
 .../operation/projection/ObliqueMercator.java      |  12 +-
 .../operation/projection/ObliqueStereographic.java |  12 +-
 .../operation/projection/Orthographic.java         |  12 +-
 .../operation/projection/PolarStereographic.java   |  12 +-
 .../operation/projection/Polyconic.java            |  12 +-
 .../referencing/operation/projection/Robinson.java |   7 +-
 .../operation/projection/SatelliteTracking.java    |  12 +-
 .../operation/projection/Sinusoidal.java           |  12 +-
 .../operation/projection/TransverseMercator.java   |   7 +-
 .../sis/referencing/operation/provider/Affine.java |   5 +-
 .../org/apache/sis/referencing/package-info.java   |   2 +-
 .../referencing/factory/sql/EPSGFactoryTest.java   |  35 ++
 .../sis/referencing/operation/projection/NoOp.java |  15 +-
 .../transform/ProjectiveTransformTest.java         |   5 +-
 .../apache/sis/storage/geoheif/ImageResource.java  |   2 +-
 .../storage/isobmff/base/IdentifiedMediaData.java  |   5 +-
 .../sis/storage/geoheif/SelfConsistencyTest.java   |   5 +-
 .../sis/storage/geotiff/SelfConsistencyTest.java   |   5 +-
 .../sis/storage/netcdf/SelfConsistencyTest.java    |   7 +-
 .../org.apache.sis.storage/main/module-info.java   |   2 +-
 .../main/org/apache/sis/storage/DataOptionKey.java |  42 --
 .../org/apache/sis/storage/DataStoreException.java |  59 ++-
 .../apache/sis/storage/GridCoverageResource.java   |  20 +-
 .../main/org/apache/sis/storage/OptionKey.java     | 148 ++++++-
 .../org/apache/sis/storage/StorageConnector.java   |   8 +-
 .../sis/storage/UnsupportedStorageException.java   |   5 +-
 .../sis/storage/internal/InputStreamAdapter.java   |   2 +-
 .../main/org/apache/sis/storage/package-info.java  |   2 +-
 .../test/org/apache/sis/storage/OptionKeyTest.java |   3 +-
 .../sis/storage/esri/BILConsistencyTest.java       |  10 +-
 .../sis/storage/esri/BIPConsistencyTest.java       |  10 +-
 .../sis/storage/esri/BSQConsistencyTest.java       |  10 +-
 .../sis/storage/image/SelfConsistencyTest.java     |  10 +-
 .../sis/storage/test/CoverageReadConsistency.java  |   6 +-
 .../src/org.apache.sis.util/main/module-info.java  |   3 +-
 .../main/org/apache/sis/pending/jdk/JDK13.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK15.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK16.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK17.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK18.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK19.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK20.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK21.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK22.java     |   2 +-
 .../main/org/apache/sis/pending/jdk/JDK23.java     |   2 +-
 .../sis/pending/jdk/{JDK12.java => JDK26.java}     |  25 +-
 .../org/apache/sis/pending/jdk/package-info.java   |   2 +-
 .../main/org/apache/sis/setup/OptionKey.java       | 349 ---------------
 .../main/org/apache/sis/util/Classes.java          |  21 +-
 .../main/org/apache/sis/util/Exceptions.java       |  44 +-
 .../org/apache/sis/util/LocalizedException.java    |  85 ----
 .../internal/shared/LocalizedParseException.java   |  54 ++-
 .../org/apache/sis/util/logging/Initializer.java   |   8 +-
 .../main/org/apache/sis/util/logging/Logging.java  |   4 +-
 .../main/org/apache/sis/util/package-info.java     |   2 +-
 .../sis/util/resources/IndexedResourceBundle.java  |   8 +-
 .../test/org/apache/sis/test/Printer.java          |   5 +-
 .../shared/LocalizedParseExceptionTest.java        |  12 +-
 .../apache/sis/storage/geopackage/GpkgStore.java   |   5 +-
 .../apache/sis/storage/geopackage/Initializer.java |   5 +-
 optional/README.md                                 |   2 +-
 optional/src/org.apache.sis.gui/bundle/README      |   2 +-
 .../src/org.apache.sis.gui/main/module-info.java   |   2 +-
 .../apache/sis/gui/controls/SyncWindowList.java    | 250 -----------
 .../apache/sis/gui/coverage/CoverageExplorer.java  | 102 -----
 .../org/apache/sis/gui/dataset/WindowHandler.java  | 474 ---------------------
 .../org/apache/sis/gui/dataset/WindowManager.java  | 141 ------
 .../org/apache/sis/gui/dataset/package-info.java   |   2 +-
 .../org/apache/sis/gui/internal/PrivateAccess.java |  52 ---
 .../org/apache/sis/gui/internal/ToolbarButton.java | 115 -----
 .../main/org/apache/sis/gui/map/StatusBar.java     |  16 +-
 .../main/org/apache/sis/gui/map/package-info.java  |   2 +-
 .../org/apache/sis/gui/referencing/WKTPane.java    |   7 +-
 parent/overview.html                               |   2 +-
 parent/pom.xml                                     |   4 +-
 133 files changed, 752 insertions(+), 2299 deletions(-)

diff --cc endorsed/build.gradle.kts
index 87bb91af04,2785080913..88dac5b578
--- a/endorsed/build.gradle.kts
+++ b/endorsed/build.gradle.kts
@@@ -100,7 -100,8 +100,7 @@@ dependencies 
   */
  var srcDir = file("src")            // Must be the same as the hard-coded 
value in `BuildHelper.java`.
  tasks.compileJava {
-     options.release.set(11)         // The version of both Java source code 
and compiled byte code.
 -    dependsOn(":geoapi:rebuild")
+     options.release.set(12)         // The version of both Java source code 
and compiled byte code.
  }
  tasks.compileTestJava {
      options.compilerArgs.add("-source")         // "source", not "release", 
because we accept any target version.
diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCRSBuilder.java
index 5458c0ff6a,abbe468b42..7df30cb314
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCRSBuilder.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/coverage/grid/GridCRSBuilder.java
@@@ -255,12 -247,12 +247,12 @@@ final class GridCRSBuilder extends Refe
      {
          this.anchor = anchor;
          properties.put(DefiningConversion.SIDE_PROCESSING_KEY, 
DefiningConversion.SideProcessing.NONE);
 -        properties.put(ObjectDomain.SCOPE_KEY, SCOPE);
 +        properties.put(Datum.SCOPE_KEY, SCOPE);
          grid.getGeographicExtent().ifPresent((domain) -> {
 -            properties.put(ObjectDomain.DOMAIN_OF_VALIDITY_KEY, new 
DefaultExtent(null, domain, null, null));
 +            properties.put(Datum.DOMAIN_OF_VALIDITY_KEY, new 
DefaultExtent(null, domain, null, null));
          });
          fullGrid = grid;
-         if (derived || grid.isDefined(GridGeometry.CRS | 
GridGeometry.GRID_TO_CRS)) try {
+         if (grid.isDefined(GridGeometry.CRS | GridGeometry.GRID_TO_CRS)) try {
              separator = new 
TransformSeparator(grid.getGridToCRS(anchor).inverse());
              return forComponent(name, grid.getCoordinateReferenceSystem(), 0, 
0);
          } catch (NoninvertibleTransformException e) {
diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/InvalidFeatureException.java
index 54c0e15087,4910141115..22dfe5674d
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/InvalidFeatureException.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/InvalidFeatureException.java
@@@ -17,17 -17,25 +17,18 @@@
  package org.apache.sis.feature;
  
  import org.opengis.util.InternationalString;
- import org.apache.sis.util.LocalizedException;
  
 -// Specific to the geoapi-3.1 and geoapi-4.0 branches:
 -import org.opengis.feature.Feature;
 -import org.opengis.feature.InvalidPropertyValueException;
 -
  
  /**
   * Thrown when a feature fails at least one conformance test.
   *
 - * <p><b>API design note:</b> this exception extends {@link 
InvalidPropertyValueException}
 - * because an Apache <abbr>SIS</abbr> feature can be invalid only if a 
property is invalid.</p>
 - *
   * @author  Martin Desruisseaux (Geomatys)
+  * @version 1.8
+  * @since   1.8
   *
 - * @see Features#validate(Feature)
 + * @see Features#validate(AbstractFeature)
   */
- final class InvalidFeatureException extends IllegalArgumentException 
implements LocalizedException {
 -public class InvalidFeatureException extends InvalidPropertyValueException {
++public class InvalidFeatureException extends IllegalArgumentException {
      /**
       * For cross-version compatibility.
       */
diff --cc 
endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/GeohashReferenceSystem.java
index bd69511314,85437b2411..778f60ee94
--- 
a/endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/GeohashReferenceSystem.java
+++ 
b/endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/GeohashReferenceSystem.java
@@@ -190,14 -194,13 +190,13 @@@ public class GeohashReferenceSystem ext
      }
  
      /**
-      * Work around for RFE #4093999 in Sun's bug database
-      * ("Relax constraint on placement of this()/super() call in 
constructors").
+      * Workaround while waiting for JEP 513: Flexible Constructor Bodies.
       */
-     @Workaround(library="JDK", version="8", fixed="25")
+     @Workaround(library="JDK", version="11", fixed="25")
 -    private static LocationType[] types() {
 +    private static ModifiableLocationType[] types() {
-         final ModifiableLocationType gzd = new 
ModifiableLocationType(IDENTIFIER);
+         final var gzd = new ModifiableLocationType(IDENTIFIER);
          
gzd.addIdentification(Vocabulary.formatInternational(Vocabulary.Keys.Code));
 -        return new LocationType[] {gzd};
 +        return new ModifiableLocationType[] {gzd};
      }
  
      /**
diff --cc 
endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystem.java
index 1fa4acb8fc,3acbfb6109..47b74e2d4b
--- 
a/endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystem.java
+++ 
b/endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystem.java
@@@ -284,24 -289,29 +284,22 @@@ public class MilitaryGridReferenceSyste
      }
  
      /**
-      * Work around for RFE #4093999 in Sun's bug database
-      * ("Relax constraint on placement of this()/super() call in 
constructors").
+      * Workaround while waiting for JEP 513: Flexible Constructor Bodies.
       */
-     @Workaround(library="JDK", version="8", fixed="25")
+     @Workaround(library="JDK", version="11", fixed="25")
      private static Map<String,?> properties() {
 -        Party party;
 -        try {
 -            party = MetadataSource.getProvided().lookup(Party.class, 
"{org}NATO");
 -        } catch (MetadataStoreException e) {
 -            party = null;
 -            Logging.unexpectedException(LOGGER, 
MilitaryGridReferenceSystem.class, "<init>", e);
 -        }
 -        var name = new NamedIdentifier(null, "NATO", 
Resources.formatInternational(Resources.Keys.MGRS), null, null);
 -        return properties(name, IDENTIFIER, party);
 +        final var party = new AbstractParty("North Atlantic Treaty 
Organization", null);
 +        return properties(new NamedIdentifier(null, "NATO", 
Resources.formatInternational(Resources.Keys.MGRS), null, null), IDENTIFIER, 
party);
      }
  
      /**
-      * Work around for RFE #4093999 in Sun's bug database
-      * ("Relax constraint on placement of this()/super() call in 
constructors").
+      * Workaround while waiting for JEP 513: Flexible Constructor Bodies.
       */
-     @Workaround(library="JDK", version="8", fixed="25")
+     @Workaround(library="JDK", version="11", fixed="25")
 -    private static LocationType[] types() {
 +    private static ModifiableLocationType[] types() {
-         final ModifiableLocationType gzd    = new 
ModifiableLocationType(Resources.formatInternational(Resources.Keys.GridZoneDesignator));
-         final ModifiableLocationType square = new 
ModifiableLocationType(Resources.formatInternational(Resources.Keys.SquareIdentifier100));
-         final ModifiableLocationType coord  = new 
ModifiableLocationType(Resources.formatInternational(Resources.Keys.GridCoordinates));
+         final var gzd    = new 
ModifiableLocationType(Resources.formatInternational(Resources.Keys.GridZoneDesignator));
+         final var square = new 
ModifiableLocationType(Resources.formatInternational(Resources.Keys.SquareIdentifier100));
+         final var coord  = new 
ModifiableLocationType(Resources.formatInternational(Resources.Keys.GridCoordinates));
          gzd   
.addIdentification(Vocabulary.formatInternational(Vocabulary.Keys.Code));
          coord 
.addIdentification(Vocabulary.formatInternational(Vocabulary.Keys.Coordinate));
          square.addParent(gzd);
diff --cc 
endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/Envelope2D.java
index e5a4d4b726,02f22c2841..d5afd11e33
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/Envelope2D.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/geometry/Envelope2D.java
@@@ -153,11 -154,10 +153,10 @@@ public class Envelope2D extends Rectang
                         final DirectPosition upperCorner)
      {
          /*
-          * JDK constraint: The call to ensureDimensionMatch(…) should have 
been first if Sun/Oracle
-          * fixed RFE #4093999 (Relax constraint on placement of 
this()/super() call in constructors).
+          * JDK constraint: The call to ensureDimensionMatch(…) should be 
first after upgrade to JDK25.
           */
 -        this(lowerCorner.getCoordinate(0), lowerCorner.getCoordinate(1),
 -             upperCorner.getCoordinate(0), upperCorner.getCoordinate(1));
 +        this(lowerCorner.getOrdinate(0), lowerCorner.getOrdinate(1),
 +             upperCorner.getOrdinate(0), upperCorner.getOrdinate(1));
          ensureDimensionMatches("crs", DIMENSION, crs);
          this.crs = crs;
      }
diff --cc 
endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/transform/ProjectiveTransformTest.java
index fdb5922779,1089b4449e..2400f34923
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/transform/ProjectiveTransformTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/transform/ProjectiveTransformTest.java
@@@ -57,21 -56,12 +58,22 @@@ import org.opengis.test.referencing.Tra
   */
  @SuppressWarnings("exports")
  @ExtendWith(FailureDetailsReporter.class)
 -public class ProjectiveTransformTest extends AffineTransformTest {
 +public class ProjectiveTransformTest extends TransformTestCase {
 +    /**
 +     * The factory to use for creating linear transforms.
 +     */
 +    private final MathTransformFactory mtFactory;
 +
 +    /**
 +     * The matrix for the tested transform.
 +     */
 +    private Matrix matrix;
 +
      /**
       * A math transform factory which delegates instantiations to the 
enclosing test class.
-      * This is a workaround while waiting for JEP 447: Statements before 
super(…).
+      * Workaround while waiting for JEP 513: Flexible Constructor Bodies.
       */
+     @Workaround(library="JDK", version="11", fixed="25")
      private static final class Proxy extends MathTransformFactoryBase {
          /** The enclosing test class. */
          ProjectiveTransformTest test;
@@@ -85,8 -75,9 +87,9 @@@
      /**
       * Creates a new test suite.
       */
+     @SuppressWarnings("LeakingThisInConstructor")
      public ProjectiveTransformTest() {
 -        super(new Proxy());
 +        mtFactory = new Proxy();
          ((Proxy) mtFactory).test = this;
      }
  
diff --cc endorsed/src/org.apache.sis.util/main/org/apache/sis/util/Classes.java
index 52f1714232,ac99f02986..3c1b0a3b68
--- a/endorsed/src/org.apache.sis.util/main/org/apache/sis/util/Classes.java
+++ b/endorsed/src/org.apache.sis.util/main/org/apache/sis/util/Classes.java
@@@ -34,11 -34,7 +34,10 @@@ import java.lang.reflect.GenericDeclara
  import java.lang.reflect.ParameterizedType;
  import java.lang.reflect.Modifier;
  import org.opengis.annotation.UML;
- import org.apache.sis.pending.jdk.JDK12;
  
 +// Specific to the main branch:
 +import org.opengis.util.InternationalString;
 +
  
  /**
   * Static methods working on {@link Class} objects.

Reply via email to