This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch geoapi-3.1 in repository https://gitbox.apache.org/repos/asf/sis.git
commit 3b34cf323f7961d7ca76ecbaf9df478c84b32e24 Merge: 60f07fc246 0d5e5d119d Author: Martin Desruisseaux <[email protected]> AuthorDate: Wed May 20 18:34:47 2026 +0200 Merge geoapi-4.0 into geoapi-3.1. The main work are related to improvement in GeoHEIF support. .../main/org/apache/sis/console/CommandRunner.java | 4 +- .../apache/sis/console/FormattedOutputCommand.java | 2 +- .../org/apache/sis/console/TranslateCommand.java | 2 +- .../coverage/grid/CoordinateOperationFinder.java | 44 +- .../apache/sis/coverage/grid/GridCRSBuilder.java | 128 +++++- .../apache/sis/coverage/grid/GridGeometryTest.java | 48 ++ .../org/apache/sis/metadata/MetadataStandard.java | 2 +- .../org/apache/sis/metadata/TitleProperty.java | 2 +- .../main/org/apache/sis/metadata/TreeNode.java | 90 +++- .../org/apache/sis/metadata/TreeNodeChildren.java | 44 +- .../org/apache/sis/metadata/TreeTableView.java | 67 +-- .../apache/sis/metadata/ValueExistencePolicy.java | 104 +++-- .../main/org/apache/sis/metadata/package-info.java | 2 +- .../org/apache/sis/xml/PooledUnmarshaller.java | 8 +- .../main/org/apache/sis/xml/TransformedEvent.java | 2 +- .../main/org/apache/sis/xml/XML.java | 4 +- .../main/org/apache/sis/xml/bind/gcx/Anchor.java | 9 +- .../sis/xml/internal/shared/InputFactory.java | 42 +- .../main/org/apache/sis/xml/package-info.java | 24 +- .../apache/sis/metadata/TreeNodeChildrenTest.java | 14 +- .../test/org/apache/sis/metadata/TreeNodeTest.java | 11 +- .../apache/sis/metadata/TreeTableFormatTest.java | 15 +- .../org/apache/sis/metadata/TreeTableViewTest.java | 3 +- .../sis/xml/internal/shared/InputFactoryTest.java | 8 +- .../main/org/apache/sis/io/wkt/WKTFormat.java | 4 +- .../sis/referencing/cs/CoordinateSystems.java | 2 +- .../referencing/datum/DefaultDatumEnsemble.java | 30 +- .../apache/sis/referencing/datum/package-info.java | 2 +- .../factory/CommonAuthorityFactory.java | 6 +- .../referencing/factory/FactoryDataException.java | 2 +- .../referencing/factory/GeodeticObjectFactory.java | 2 +- ...xception.java => InternalFactoryException.java} | 28 +- .../internal/ParameterizedTransformBuilder.java | 4 +- .../internal/shared/CoordinateOperations.java | 4 +- .../internal/shared/OperationMethodExt.java | 73 +++ .../operation/AbstractCoordinateOperation.java | 8 +- .../operation/AbstractSingleOperation.java | 4 +- .../operation/CoordinateOperationContext.java | 2 +- .../operation/CoordinateOperationFinder.java | 69 ++- .../operation/CoordinateOperationRegistry.java | 14 +- .../operation/DefaultConcatenatedOperation.java | 4 +- .../DefaultCoordinateOperationFactory.java | 19 +- .../sis/referencing/operation/DefaultFormula.java | 9 +- .../operation/DefaultOperationMethod.java | 4 +- .../referencing/operation/gridded/LoadedGrid.java | 2 +- .../operation/projection/ZonedGridSystem.java | 3 +- .../provider/FranceGeocentricInterpolation.java | 3 +- .../GeocentricAffineBetweenGeographic.java | 3 +- .../operation/provider/GeocentricToGeographic.java | 3 +- .../operation/provider/Geographic3Dto2D.java | 3 +- .../operation/provider/Spherical2Dto3D.java | 3 +- .../operation/provider/VerticalOffset.java | 3 +- .../transform/DefaultMathTransformFactory.java | 3 +- .../transform/EllipsoidToRadiusTransform.java | 3 +- .../operation/transform/MathTransformProvider.java | 31 +- .../test/org/apache/sis/io/wkt/WKTFormatTest.java | 21 +- .../operation/DefaultTransformationTest.java | 3 +- .../main/org/apache/sis/storage/landsat/Band.java | 4 +- .../org/apache/sis/storage/landsat/BandGroup.java | 2 +- .../apache/sis/storage/landsat/LandsatStore.java | 2 +- .../apache/sis/storage/landsat/MetadataReader.java | 2 +- .../storage/landsat/LandsatStoreProviderTest.java | 2 +- .../apache/sis/storage/geotiff/Compression.java | 2 +- .../apache/sis/storage/geotiff/FormatModifier.java | 2 +- .../apache/sis/storage/geotiff/GeoTiffStore.java | 4 +- .../apache/sis/storage/geotiff/NativeMetadata.java | 106 ++++- .../org/apache/sis/storage/geotiff/Writer.java | 2 +- .../geotiff/reader/GridGeometryBuilder.java | 2 +- .../geotiff/reader/ImageMetadataBuilder.java | 2 +- .../sis/storage/geotiff/reader/Localization.java | 3 +- .../sis/storage/geotiff/reader/XMLMetadata.java | 5 +- .../sis/storage/geotiff/writer/GeoEncoder.java | 2 +- .../storage/geotiff/reader/XMLMetadataTest.java | 2 +- .../apache/sis/storage/netcdf/MetadataReader.java | 2 +- .../org/apache/sis/storage/netcdf/NetcdfStore.java | 2 +- .../sis/storage/netcdf/NetcdfStoreProvider.java | 2 +- .../apache/sis/storage/netcdf/base/Decoder.java | 2 +- .../sis/storage/netcdf/base/RasterResource.java | 2 +- .../sis/storage/netcdf/classic/ChannelDecoder.java | 2 +- .../sis/storage/netcdf/ucar/DecoderWrapper.java | 2 +- .../main/org/apache/sis/storage/sql/SQLStore.java | 4 +- .../apache/sis/storage/sql/feature/Database.java | 2 +- .../sis/storage/sql/feature/SchemaModifier.java | 4 +- .../sis/storage/sql/postgis/PostgresTest.java | 2 +- .../main/org/apache/sis/storage/gpx/Store.java | 2 +- .../main/org/apache/sis/storage/gpx/Types.java | 2 +- .../sis/storage/xml/stream/StaxDataStore.java | 41 +- .../org/apache/sis/storage/gpx/ReaderTest.java | 2 +- .../org/apache/sis/storage/gpx/UpdaterTest.java | 2 +- .../org/apache/sis/storage/gpx/WriterTest.java | 2 +- .../org.apache.sis.storage/main/module-info.java | 13 + .../apache/sis/io/stream/InternalOptionKey.java | 2 +- .../org/apache/sis/storage/AbstractFeatureSet.java | 2 +- .../sis/storage/AbstractGridCoverageResource.java | 2 +- .../org/apache/sis/storage/AbstractResource.java | 2 +- .../org/apache/sis/storage/CoverageSubset.java | 2 +- .../main/org/apache/sis/storage/DataOptionKey.java | 83 +--- .../main/org/apache/sis/storage/DataStore.java | 3 +- .../org/apache/sis/storage/DataStoreProvider.java | 13 + .../org/apache/sis/storage/DataStoreRegistry.java | 2 +- .../main/org/apache/sis/storage/FeatureSubset.java | 2 +- .../sis/storage/InternalDataStoreException.java | 9 +- .../main/org/apache/sis/storage/OptionKey.java | 297 ++++++++++++ .../org/apache/sis/storage/StorageConnector.java | 19 +- .../storage/aggregate/AggregatedFeatureSet.java | 2 +- .../sis/storage/aggregate/AggregatedResource.java | 2 +- .../aggregate/BandAggregateGridResource.java | 2 +- .../aggregate/ConcatenatedGridResource.java | 2 +- .../sis/storage/aggregate/GroupAggregate.java | 2 +- .../main/org/apache/sis/storage/base/CodeType.java | 12 +- .../sis/storage/base/DocumentedStoreProvider.java | 2 +- .../org/apache/sis/storage/base/PRJDataStore.java | 2 +- .../org/apache/sis/storage/base/URIDataStore.java | 12 +- .../sis/storage/base/URIDataStoreProvider.java | 14 +- .../org/apache/sis/storage/base/package-info.java | 2 +- .../main/org/apache/sis/storage/csv/Store.java | 9 +- .../org/apache/sis/storage/csv/StoreProvider.java | 6 +- .../org/apache/sis/storage/csv/package-info.java | 2 +- .../apache/sis/storage/esri/AsciiGridStore.java | 6 +- .../org/apache/sis/storage/esri/RasterStore.java | 2 +- .../main/org/apache/sis/storage/folder/Store.java | 7 +- .../apache/sis/storage/folder/StoreProvider.java | 4 +- .../apache/sis/storage/folder/WritableStore.java | 2 +- .../apache/sis/storage/image/WorldFileStore.java | 4 +- .../apache/sis/storage/image/WritableStore.java | 2 +- .../storage/{base => metadata}/LegalSymbols.java | 3 +- .../{base => metadata}/MetadataBuilder.java | 3 +- .../{base => metadata}/MetadataFetcher.java | 8 +- .../{base => metadata}/ResourceLineage.java | 2 +- .../storage/{base => metadata}/package-info.java | 4 +- .../sis/storage/modifier/CoverageModifier.java | 10 +- .../org/apache/sis/storage/tiling/TileMatrix.java | 2 +- .../apache/sis/storage/tiling/TileMatrixSet.java | 2 +- .../main/org/apache/sis/storage/wkt/Store.java | 4 +- .../main/org/apache/sis/storage/xml/Store.java | 4 +- .../org/apache/sis/storage/DataOptionKeyTest.java | 46 -- .../org/apache/sis/storage}/OptionKeyTest.java | 23 +- .../apache/sis/storage/StorageConnectorTest.java | 1 - .../apache/sis/storage/csv/StoreProviderTest.java | 2 +- .../test/org/apache/sis/storage/csv/StoreTest.java | 5 +- .../apache/sis/storage/esri/WritableStoreTest.java | 2 +- .../sis/storage/image/WorldFileStoreTest.java | 2 +- .../{base => metadata}/MetadataBuilderTest.java | 2 +- .../main/org/apache/sis/io/CompoundFormat.java | 77 ++-- .../main/org/apache/sis/io/LineAppender.java | 6 +- .../main/org/apache/sis/math/StatisticsFormat.java | 14 +- .../main/org/apache/sis/setup/GeometryLibrary.java | 2 +- .../main/org/apache/sis/setup/OptionKey.java | 46 +- .../main/org/apache/sis/setup/package-info.java | 5 +- .../sis/util/AbstractInternationalString.java | 22 +- .../main/org/apache/sis/util/Exceptions.java | 6 +- .../org/apache/sis/util/collection/TreeTable.java | 18 +- .../sis/util/collection/TreeTableFormat.java | 67 +-- .../apache/sis/util/internal/shared/Constants.java | 2 +- .../sis/util/internal/shared/PropertyFormat.java | 74 +-- .../internal/shared/TreeFormatCustomization.java | 51 --- .../sis/util/internal/shared/TreeTableForGUI.java | 42 ++ .../org/apache/sis/util/resources/Vocabulary.java | 10 + .../sis/util/resources/Vocabulary.properties | 2 + .../sis/util/resources/Vocabulary_fr.properties | 2 + .../org/apache/sis/geometries/scene/SceneNode.java | 76 +++ .../main/org/apache/sis/geometries/scene/Skin.java | 1 + .../sis/geometries/scene/physics/Collider.java | 83 ++++ .../geometries/scene/physics/ColliderGeometry.java | 65 +++ .../geometries/scene/physics/CollisionFilter.java | 85 ++++ .../apache/sis/geometries/scene/physics/Joint.java | 360 +++++++++++++++ .../sis/geometries/scene/physics/Motion.java | 180 ++++++++ .../geometries/scene/physics/PhysicalMaterial.java | 130 ++++++ .../sis/geometries/scene/physics/Trigger.java | 87 ++++ .../storage/coveragejson/CoverageJsonStore.java | 2 +- .../sis/storage/geoheif/CoverageBuilder.java | 9 +- .../apache/sis/storage/geoheif/GeoHeifStore.java | 5 +- .../sis/storage/geoheif/UncompressedImage.java | 2 +- .../main/org/apache/sis/storage/isobmff/Box.java | 4 +- .../apache/sis/storage/isobmff/BoxRegistry.java | 9 + .../apache/sis/storage/isobmff/ContainerBox.java | 15 +- .../org/apache/sis/storage/isobmff/Extension.java | 20 +- .../org/apache/sis/storage/isobmff/FullBox.java | 41 +- .../{gimi/package-info.java => Incomplete.java} | 19 +- .../sis/storage/isobmff/MainBoxRegistry.java | 2 +- .../apache/sis/storage/isobmff/NodeSummary.java | 59 +++ .../org/apache/sis/storage/isobmff/Reader.java | 19 +- .../main/org/apache/sis/storage/isobmff/Root.java | 2 +- .../org/apache/sis/storage/isobmff/TreeNode.java | 507 +++++++++++++++------ .../storage/isobmff/base/ColourInformation.java | 2 +- .../sis/storage/isobmff/base/CombinaisonType.java | 2 +- .../apache/sis/storage/isobmff/base/Copyright.java | 3 +- .../sis/storage/isobmff/base/EntityToGroup.java | 2 + .../storage/isobmff/base/FDItemInfoExtension.java | 4 +- .../apache/sis/storage/isobmff/base/FileType.java | 2 +- .../apache/sis/storage/isobmff/base/GroupList.java | 2 +- .../sis/storage/isobmff/base/HandlerReference.java | 2 +- .../storage/isobmff/base/IdentifiedMediaData.java | 2 +- .../apache/sis/storage/isobmff/base/ItemInfo.java | 17 +- .../sis/storage/isobmff/base/ItemInfoEntry.java | 9 +- .../sis/storage/isobmff/base/ItemLocation.java | 2 +- .../sis/storage/isobmff/base/ItemProperties.java | 40 +- .../isobmff/base/ItemPropertyAssociation.java | 41 +- .../isobmff/base/ItemPropertyContainer.java | 2 +- .../sis/storage/isobmff/base/ItemReference.java | 5 +- .../org/apache/sis/storage/isobmff/base/Meta.java | 5 +- .../org/apache/sis/storage/isobmff/base/Movie.java | 2 +- .../sis/storage/isobmff/base/MovieHeader.java | 5 +- .../sis/storage/isobmff/base/OriginalFileType.java | 2 +- .../sis/storage/isobmff/base/PrimaryItem.java | 2 +- .../isobmff/base/ProgressiveDownloadInfo.java | 5 +- .../isobmff/base/SingleItemTypeReference.java | 2 +- .../org/apache/sis/storage/isobmff/base/Track.java | 2 +- .../sis/storage/isobmff/base/TrackHeader.java | 27 +- .../apache/sis/storage/isobmff/base/UserData.java | 2 +- .../storage/isobmff/{gimi => geo}/ModelCRS.java | 9 +- .../isobmff/{gimi => geo}/ModelTiePoint.java | 29 +- .../isobmff/{gimi => geo}/ModelTransformation.java | 6 +- .../isobmff/geo/TiledImageConfiguration.java | 164 +++++++ .../isobmff/{gimi => geo}/UnknownProperty.java | 4 +- .../isobmff/{gimi => geo}/package-info.java | 2 +- .../isobmff/gimi/TiledImageConfiguration.java | 56 --- .../sis/storage/isobmff/image/CreationTime.java | 1 + .../storage/isobmff/image/ModificationTime.java | 1 + .../sis/storage/isobmff/image/UserDescription.java | 3 +- .../sis/storage/isobmff/mpeg/ChromaLocation.java | 5 +- .../apache/sis/storage/isobmff/mpeg/Component.java | 1 + .../isobmff/mpeg/ComponentReferenceLevel.java | 5 +- .../isobmff/mpeg/DepthMappingInformation.java | 5 +- .../storage/isobmff/mpeg/DisparityInformation.java | 5 +- .../sis/storage/isobmff/mpeg/FieldInterlace.java | 5 +- .../storage/isobmff/mpeg/FieldInterlaceType.java | 5 +- .../isobmff/mpeg/FramePackingInformation.java | 5 +- .../mpeg/PolarizationPatternDefinition.java | 5 +- .../storage/isobmff/mpeg/SensorBadPixelsMap.java | 5 +- .../mpeg/SensorNonUniformityCorrection.java | 5 +- .../sis/storage/isobmff/mpeg/TAIClockInfo.java | 6 +- .../sis/storage/isobmff/mpeg/TAITimeStamp.java | 5 +- .../isobmff/mpeg/UncompressedFrameConfig.java | 2 +- .../storage/isobmff/video/ContentDescribes.java | 5 +- .../isobmff/{gimi => geo}/ExtensionTest.java | 4 +- .../org/apache/sis/storage/geopackage/Content.java | 2 +- .../sis/storage/geopackage/GpkgStoreProvider.java | 2 +- .../apache/sis/storage/geopackage/Initializer.java | 2 +- .../sis/storage/geopackage/GpkgStoreTest.java | 2 +- .../conformance/CoreConformanceTest.java | 2 +- .../main/org/apache/sis/storage/gsf/GSFStore.java | 2 +- .../sis/storage/shapefile/ShapefileProvider.java | 13 +- .../sis/storage/shapefile/ShapefileStore.java | 39 +- .../apache/sis/storage/shapefile/dbf/DBFField.java | 2 +- .../sis/storage/shapefile/shp/ShapeRecord.java | 1 + .../sis/storage/shapefile/ShapefileStoreTest.java | 32 ++ .../sis/storage/shapefile/dbf/DBFIOTest.java | 2 +- .../apache/sis/storage/shapefile/dbf/Snippets.java | 2 +- .../test/org/apache/sis/storage/shapefile/noid.cpg | 1 + .../test/org/apache/sis/storage/shapefile/noid.dbf | Bin 0 -> 147 bytes .../test/org/apache/sis/storage/shapefile/noid.prj | 1 + .../test/org/apache/sis/storage/shapefile/noid.shp | Bin 0 -> 128 bytes .../test/org/apache/sis/storage/shapefile/noid.shx | Bin 0 -> 108 bytes .../sis/storage/shapefile/shp/ShapeIOTest.java | 2 +- .../apache/sis/storage/shapefile/shp/Snippets.java | 2 +- .../apache/sis/gui/coverage/BandRangeTable.java | 6 +- .../sis/gui/coverage/ImagePropertyExplorer.java | 12 +- .../org/apache/sis/gui/dataset/FeatureTable.java | 19 +- .../sis/gui/internal/IdentityValueFactory.java | 4 +- .../sis/gui/internal/PropertyValueFormats.java | 4 +- .../sis/gui/internal/PropertyValueFormatter.java | 2 +- .../org/apache/sis/gui/metadata/MetadataTree.java | 157 +++++-- .../sis/gui/metadata/StandardMetadataTree.java | 10 +- .../org/apache/sis/gui/metadata/package-info.java | 2 +- .../org/apache/sis/storage/gdal/GDALStore.java | 4 +- .../apache/sis/storage/gdal/GDALStoreProvider.java | 2 +- .../org/apache/sis/storage/gdal/TiledResource.java | 2 +- 268 files changed, 3675 insertions(+), 1373 deletions(-) diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeNodeChildrenTest.java index 41e599d38c,b38e966ce3..e59dfb3026 --- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeNodeChildrenTest.java +++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeNodeChildrenTest.java @@@ -69,9 -72,9 +69,9 @@@ public final class TreeNodeChildrenTes * └─Other citation details…… Some other details</pre> */ static DefaultCitation metadataWithoutCollections() { - final DefaultCitation citation = new DefaultCitation("Some title"); + final var citation = new DefaultCitation("Some title"); citation.setEdition(new SimpleInternationalString("Some edition")); - citation.setOtherCitationDetails(Set.of(new SimpleInternationalString("Some other details"))); + citation.setOtherCitationDetails(new SimpleInternationalString("Some other details")); return citation; } diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeTableFormatTest.java index 3a76924aa9,ad562b03ac..998111f276 --- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeTableFormatTest.java +++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/TreeTableFormatTest.java @@@ -106,13 -107,13 +107,13 @@@ public final class TreeTableFormatTest */ @Test public void testProcessing() { - final DefaultCitation titled = new DefaultCitation("Some specification"); - final DefaultCitation coded = new DefaultCitation(); - final DefaultCitation untitled = new DefaultCitation(); + final var titled = new DefaultCitation("Some specification"); + final var coded = new DefaultCitation(); + final var untitled = new DefaultCitation(); titled .setPresentationForms(Set.of(PresentationForm.DOCUMENT_HARDCOPY)); coded .setPresentationForms(Set.of(PresentationForm.IMAGE_HARDCOPY)); - untitled.setCitedResponsibleParties(Set.of(new DefaultResponsibility(Role.AUTHOR, null, null))); + untitled.setCitedResponsibleParties(Set.of(new DefaultResponsibleParty(Role.AUTHOR))); - final DefaultProcessing processing = new DefaultProcessing(); + final var processing = new DefaultProcessing(); processing.setDocumentations(List.of(titled, coded, untitled)); final String text = format.format(processing.asTreeTable()); assertMultilinesEquals( diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java index af00add12d,baa510d453..611c8d7e25 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationFinder.java @@@ -1150,8 -1129,8 +1153,8 @@@ public class CoordinateOperationFinder if (isAxisChange1 && mt1.getSourceDimensions() == mt1.getTargetDimensions()) main = step2; if (isAxisChange2 && mt2.getSourceDimensions() == mt2.getTargetDimensions()) main = step1; } - if (main instanceof SingleOperation) { + if (AbstractCoordinateOperation.isSingleOperation(main)) { - final SingleOperation op = (SingleOperation) main; + final var op = (SingleOperation) main; main = createFromMathTransform( new HashMap<>(IdentifiedObjects.getProperties(main)), sourceCRS, diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java index a9d6d160bf,d64f692bd4..0a1ffe8197 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java @@@ -1033,8 -1023,8 +1033,8 @@@ class CoordinateOperationRegistry * For example the "Affine" set of parameters depend on the number of dimensions. * The capability to resize an operation method is specific to Apache SIS. */ - if (operation instanceof SingleOperation) { + if (AbstractCoordinateOperation.isSingleOperation(operation)) { - final SingleOperation single = (SingleOperation) operation; + final var single = (SingleOperation) operation; properties.put(CoordinateOperations.PARAMETERS_KEY, single.getParameterValues()); if (method == null) { method = single.getMethod();
