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.
