You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2023/09/29 15:30:10 UTC

[sis] branch main updated (01f8dc22a9 -> 9a6f339273)

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

desruisseaux pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/sis.git


    from 01f8dc22a9 Merge branch 'geoapi-3.1'.
     add 9e623647ab Tune the rule for ordering import statements. Those changes were used in the previous commit.
     add 1305b01fc8 Avoid using a method which has been deprecated in Gradle 8.3.
     add 2f6a07007c Convert text files and HTML files to Markdown format when those files were not used for tests. The intend is to have a less formats for documentation (Javadoc, Markdown, MathML), so all `*.txt` files can be considered as used in tests.
     add f07143ab6b fix(FeatureQuery): fix a case where query projection returned the wrong property name
     add 882b254663 Modification of the fix about the property name of a link. The check for instance of `ValueReference` should be merged with the existing check done 20 lines below.
     add 66ca33f853 Move some tests closer to the place where they are used.
     add a1f4b15161 Merge branch 'geoapi-4.0' into geoapi-3.1
     new 9a6f339273 Merge branch 'geoapi-3.1'

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../sis/buildtools/coding/ReorganizeImports.java   | 105 ++++++++++++-
 .../apache/sis/buildtools/gradle/Assembler.java    |   2 +-
 .../apache/sis/buildtools/gradle/Conventions.java  |  17 ++-
 .../apache/sis/buildtools/gradle/JavaMaker.java    |   3 +-
 .../sis/buildtools/gradle/ModularCompilation.java  |  26 +---
 .../apache/sis/buildtools/gradle/ModularJAR.java   |   4 +-
 .../org/apache/sis/buildtools/gradle/UnoPkg.java   |   4 +-
 endorsed/build.gradle.kts                          |   8 +-
 .../main/org/apache/sis/feature/README.md          |  77 ++++++++++
 .../main/org/apache/sis/feature/benchmarks.html    | 114 --------------
 .../test}/FeatureComparator.java                   |   2 +-
 .../feature => feature/test}/package-info.java     |   2 +-
 .../main/org/apache/sis/xml/README.md              |  78 ++++++++++
 .../sis/xml/bind/gco/ObjectIdentification.html     |  59 --------
 .../sis/xml/bind/gco/ObjectIdentification.md       |  31 ++++
 .../main/org/apache/sis/xml/readme.html            |  98 ------------
 .../test/org/apache/sis/metadata/Assertions.java   |   2 +-
 .../sis/metadata/PropertyConsistencyCheck.java     |   2 +-
 .../sis/metadata/internal/AxisDirectionsTest.md    |   3 +
 .../sis/metadata/internal/AxisDirectionsTest.txt   |   3 -
 .../sis/metadata/iso/CustomMetadataTest.java       |   2 +-
 .../sis/metadata/iso/DefaultIdentifierTest.java    |   2 +-
 .../sis/metadata/iso/DefaultMetadataTest.java      |   2 +-
 .../metadata/iso/citation/DefaultContactTest.java  |   2 +-
 .../iso/citation/DefaultResponsibilityTest.java    |   2 +-
 .../constraint/DefaultLegalConstraintsTest.java    |   2 +-
 .../sis/metadata/iso/content/DefaultBandTest.java  |   2 +-
 .../identification/DefaultBrowseGraphicTest.java   |   2 +-
 .../DefaultRepresentativeFractionTest.java         |   2 +-
 .../iso/identification/DefaultResolutionTest.java  |   2 +-
 .../metadata/iso/lineage/DefaultLineageTest.java   |   2 +-
 .../sis/metadata/iso/quality/ScopeCodeTest.java    |   2 +-
 .../sis/metadata/sql/IdentifierGeneratorTest.java  |   2 +-
 .../sis/metadata/sql/MetadataFallbackVerifier.java |   1 -
 .../sis/metadata/sql/MetadataSourceTest.java       |   1 -
 .../sis/metadata/sql/MetadataWriterTest.java       |   1 -
 .../sis/{test => metadata}/sql/TestDatabase.java   |   2 +-
 .../sis/metadata/sql/util/ScriptRunnerTest.java    |   2 +-
 .../org/apache/sis/metadata/xml/TestUsingFile.java |   2 +-
 .../org/apache/sis/test/mock/package-info.java     |   2 +-
 .../test/org/apache/sis/test/sql/package-info.java |  29 ----
 .../apache/sis/util/iso/NameMarshallingTest.java   |   2 +-
 .../sis/xml/CharSequenceSubstitutionTest.java      |   2 +-
 .../apache/sis/xml/NilReasonMarshallingTest.java   |   2 +-
 .../org/apache/sis/xml/ReferenceResolverMock.java  |   2 +-
 .../org/apache/sis/xml/UUIDMarshallingTest.java    |   2 +-
 .../org/apache/sis/xml/XLinkMarshallingTest.java   |   2 +-
 .../sis/xml/bind/cat/CodeListMarshallingTest.java  |   2 +-
 .../sis/xml/bind/cat/EnumMarshallingTest.java      |   2 +-
 .../apache/sis/xml/bind/gco/PropertyTypeTest.java  |   2 +-
 .../apache/sis/xml/bind/gml/TimePeriodTest.java    |   2 +-
 .../sis/xml/bind/lan/FreeTextMarshallingTest.java  |   2 +-
 .../apache/sis/xml/bind/lan/LanguageCodeTest.java  |   2 +-
 .../metadata/replace/QualityParameterTest.java     |   2 +-
 .../metadata/replace/ServiceParameterTest.java     |   2 +-
 .../test}/AnnotationConsistencyCheck.java          |   2 +-
 .../{test/xml => xml/test}/DocumentComparator.java |   2 +-
 .../sis/{test/xml => xml/test}/InfiniteSet.java    |   2 +-
 .../sis/{test/xml => xml/test}/TestCase.java       |   2 +-
 .../sis/{test/xml => xml/test}/package-info.java   |   7 +-
 .../sis/xml/util/DocumentComparatorTest.java       |   2 +-
 .../org/apache/sis/xml/util/XmlUtilitiesTest.java  |   2 +-
 .../src/org.apache.sis.openoffice/bundle/README.md | 100 ++++++++++++
 .../bundle/build-instruction.html                  | 119 ---------------
 .../sis/xml/bind/fra/DataIdentificationTest.java   |   2 +-
 .../xml/bind/fra/DirectReferenceSystemTest.java    |   2 +-
 .../apache/sis/parameter/AbstractParameterValue.md |   5 +
 .../sis/parameter/AbstractParameterValue.txt       |   5 -
 .../sis/referencing/factory/sql/EPSG_README.md     |   7 +
 .../sis/referencing/factory/sql/EPSG_README.txt    |   7 -
 .../sis/referencing/operation/builder/README.md    |  33 ++++
 .../sis/referencing/operation/builder/readme.html  |  50 ------
 ...c3DtoVertical.txt => Geographic3DtoVertical.md} |   6 +-
 .../transform/SpecializableTransform1D.md          |   3 +
 .../transform/SpecializableTransform1D.txt         |   3 -
 .../sis/xml/bind/referencing/SC_GeographicCRS.md   |   4 +
 .../sis/xml/bind/referencing/SC_GeographicCRS.txt  |   4 -
 .../sis/parameter/ParameterMarshallingTest.java    |   2 +-
 .../sis/referencing/ImmutableIdentifierTest.java   |   2 +-
 .../referencing/crs/DefaultCompoundCRSTest.java    |   2 +-
 .../sis/referencing/crs/DefaultDerivedCRSTest.java |   2 +-
 .../referencing/crs/DefaultEngineeringCRSTest.java |   2 +-
 .../referencing/crs/DefaultGeodeticCRSTest.java    |   2 +-
 .../sis/referencing/crs/DefaultImageCRSTest.java   |   2 +-
 .../referencing/crs/DefaultProjectedCRSTest.java   |   2 +-
 .../sis/referencing/cs/DefaultCartesianCSTest.java |   2 +-
 .../referencing/cs/DefaultEllipsoidalCSTest.java   |   2 +-
 .../referencing/datum/DefaultEllipsoidTest.java    |   2 +-
 .../datum/DefaultGeodeticDatumTest.java            |   2 +-
 .../datum/DefaultPrimeMeridianTest.java            |   2 +-
 .../datum/DefaultTemporalDatumTest.java            |   2 +-
 .../datum/DefaultVerticalDatumTest.java            |   2 +-
 .../sis/referencing/factory/TestFactorySource.java |   4 +-
 .../referencing/factory/sql/EPSGInstallerTest.java |   2 +-
 .../factory/sql/epsg/DataScriptFormatter.java      |   2 +-
 .../sis/referencing/factory/sql/epsg/README.md     | 133 ++++++++++++++++
 .../sis/referencing/factory/sql/epsg/package.html  | 168 ---------------------
 .../DefaultConcatenatedOperationTest.java          |   2 +-
 .../operation/DefaultPassThroughOperationTest.java |   2 +-
 .../operation/SingleOperationMarshallingTest.java  |   2 +-
 .../apache/sis/test/integration/MetadataTest.java  |   4 +-
 .../sis/test/integration/MetadataVerticalTest.java |   2 +-
 .../CC_GeneralOperationParameterTest.java          |   2 +-
 .../CC_OperationParameterGroupTest.java            |   2 +-
 .../referencing/SecondDefiningParameterTest.java   |   2 +-
 .../sis/storage/geotiff/SelfConsistencyTest.java   |   2 +-
 .../sis/storage/netcdf/SelfConsistencyTest.java    |   2 +-
 .../org/apache/sis/storage/sql/SQLStoreTest.java   |   2 +-
 .../apache/sis/storage/sql/TestOnAllDatabases.java |   2 +-
 .../sql/feature/SelectionClauseWriterTest.java     |   2 +-
 .../sql/feature/TemporalValueGetterTest.java       |   2 +-
 .../sis/storage/sql/postgis/PostgresTest.java      |   2 +-
 .../main/org/apache/sis/storage/FeatureQuery.java  |  34 +++--
 .../org/apache/sis/storage/FeatureQueryTest.java   |  56 ++++++-
 .../sis/storage/esri/BILConsistencyTest.java       |   2 +-
 .../sis/storage/esri/BIPConsistencyTest.java       |   2 +-
 .../sis/storage/esri/BSQConsistencyTest.java       |   2 +-
 .../sis/storage/image/SelfConsistencyTest.java     |   2 +-
 .../test}/CoverageReadConsistency.java             |   2 +-
 .../storage => storage/test}/SubsampledImage.java  |   2 +-
 .../storage => storage/test}/package-info.java     |   4 +-
 .../sis/util/collection/TableColumnTest.java       |   4 +-
 .../test}/SerializableTableColumn.java             |   2 +-
 .../foreigner => util/test}/package-info.java      |   2 +-
 .../shapefile/jdbc/{readme.txt => README.md}       |   2 +
 netbeans-project/nbproject/project.properties      |   7 +-
 126 files changed, 778 insertions(+), 819 deletions(-)
 create mode 100644 endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/README.md
 delete mode 100644 endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/benchmarks.html
 rename endorsed/src/org.apache.sis.feature/test/org/apache/sis/{test/feature => feature/test}/FeatureComparator.java (99%)
 rename endorsed/src/org.apache.sis.feature/test/org/apache/sis/{test/feature => feature/test}/package-info.java (96%)
 create mode 100644 endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/README.md
 delete mode 100644 endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/gco/ObjectIdentification.html
 create mode 100644 endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/gco/ObjectIdentification.md
 delete mode 100644 endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/readme.html
 create mode 100644 endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/internal/AxisDirectionsTest.md
 delete mode 100644 endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/internal/AxisDirectionsTest.txt
 rename endorsed/src/org.apache.sis.metadata/test/org/apache/sis/{test => metadata}/sql/TestDatabase.java (99%)
 delete mode 100644 endorsed/src/org.apache.sis.metadata/test/org/apache/sis/test/sql/package-info.java
 rename endorsed/src/org.apache.sis.metadata/test/org/apache/sis/{test/xml => xml/test}/AnnotationConsistencyCheck.java (99%)
 rename endorsed/src/org.apache.sis.metadata/test/org/apache/sis/{test/xml => xml/test}/DocumentComparator.java (99%)
 rename endorsed/src/org.apache.sis.metadata/test/org/apache/sis/{test/xml => xml/test}/InfiniteSet.java (98%)
 rename endorsed/src/org.apache.sis.metadata/test/org/apache/sis/{test/xml => xml/test}/TestCase.java (99%)
 rename endorsed/src/org.apache.sis.metadata/test/org/apache/sis/{test/xml => xml/test}/package-info.java (83%)
 create mode 100644 endorsed/src/org.apache.sis.openoffice/bundle/README.md
 delete mode 100644 endorsed/src/org.apache.sis.openoffice/bundle/build-instruction.html
 create mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/parameter/AbstractParameterValue.md
 delete mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/parameter/AbstractParameterValue.txt
 create mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/EPSG_README.md
 delete mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/EPSG_README.txt
 create mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/builder/README.md
 delete mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/builder/readme.html
 rename endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/{Geographic3DtoVertical.txt => Geographic3DtoVertical.md} (84%)
 create mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/SpecializableTransform1D.md
 delete mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/SpecializableTransform1D.txt
 create mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/xml/bind/referencing/SC_GeographicCRS.md
 delete mode 100644 endorsed/src/org.apache.sis.referencing/main/org/apache/sis/xml/bind/referencing/SC_GeographicCRS.txt
 create mode 100644 endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/factory/sql/epsg/README.md
 delete mode 100644 endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/factory/sql/epsg/package.html
 rename endorsed/src/org.apache.sis.storage/test/org/apache/sis/{test/storage => storage/test}/CoverageReadConsistency.java (99%)
 rename endorsed/src/org.apache.sis.storage/test/org/apache/sis/{test/storage => storage/test}/SubsampledImage.java (99%)
 rename endorsed/src/org.apache.sis.storage/test/org/apache/sis/{test/storage => storage/test}/package-info.java (93%)
 rename endorsed/src/org.apache.sis.util/test/org/apache/sis/{test/foreigner => util/test}/SerializableTableColumn.java (98%)
 rename endorsed/src/org.apache.sis.util/test/org/apache/sis/{test/foreigner => util/test}/package-info.java (96%)
 rename incubator/src/org.apache.sis.storage.shapefile/test/org/apache/sis/storage/shapefile/jdbc/{readme.txt => README.md} (99%)


[sis] 01/01: Merge branch 'geoapi-3.1'

Posted by de...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 9a6f339273ceaf48ae1c6431e7c1eaa4b9219fd2
Merge: 01f8dc22a9 a1f4b15161
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Sep 29 17:29:50 2023 +0200

    Merge branch 'geoapi-3.1'

 .../sis/buildtools/coding/ReorganizeImports.java   | 105 ++++++++++++-
 .../apache/sis/buildtools/gradle/Assembler.java    |   2 +-
 .../apache/sis/buildtools/gradle/Conventions.java  |  17 ++-
 .../apache/sis/buildtools/gradle/JavaMaker.java    |   3 +-
 .../sis/buildtools/gradle/ModularCompilation.java  |  26 +---
 .../apache/sis/buildtools/gradle/ModularJAR.java   |   4 +-
 .../org/apache/sis/buildtools/gradle/UnoPkg.java   |   4 +-
 endorsed/build.gradle.kts                          |   8 +-
 .../main/org/apache/sis/feature/README.md          |  77 ++++++++++
 .../main/org/apache/sis/feature/benchmarks.html    | 114 --------------
 .../test}/FeatureComparator.java                   |   2 +-
 .../feature => feature/test}/package-info.java     |   2 +-
 .../main/org/apache/sis/xml/README.md              |  78 ++++++++++
 .../sis/xml/bind/gco/ObjectIdentification.html     |  59 --------
 .../sis/xml/bind/gco/ObjectIdentification.md       |  31 ++++
 .../main/org/apache/sis/xml/readme.html            |  98 ------------
 .../test/org/apache/sis/metadata/Assertions.java   |   2 +-
 .../sis/metadata/PropertyConsistencyCheck.java     |   2 +-
 .../sis/metadata/internal/AxisDirectionsTest.md    |   3 +
 .../sis/metadata/internal/AxisDirectionsTest.txt   |   3 -
 .../sis/metadata/iso/CustomMetadataTest.java       |   2 +-
 .../sis/metadata/iso/DefaultIdentifierTest.java    |   2 +-
 .../sis/metadata/iso/DefaultMetadataTest.java      |   2 +-
 .../metadata/iso/citation/DefaultContactTest.java  |   2 +-
 .../iso/citation/DefaultResponsibilityTest.java    |   2 +-
 .../constraint/DefaultLegalConstraintsTest.java    |   2 +-
 .../sis/metadata/iso/content/DefaultBandTest.java  |   2 +-
 .../identification/DefaultBrowseGraphicTest.java   |   2 +-
 .../DefaultRepresentativeFractionTest.java         |   2 +-
 .../iso/identification/DefaultResolutionTest.java  |   2 +-
 .../metadata/iso/lineage/DefaultLineageTest.java   |   2 +-
 .../sis/metadata/iso/quality/ScopeCodeTest.java    |   2 +-
 .../sis/metadata/sql/IdentifierGeneratorTest.java  |   2 +-
 .../sis/metadata/sql/MetadataFallbackVerifier.java |   1 -
 .../sis/metadata/sql/MetadataSourceTest.java       |   1 -
 .../sis/metadata/sql/MetadataWriterTest.java       |   1 -
 .../sis/{test => metadata}/sql/TestDatabase.java   |   2 +-
 .../sis/metadata/sql/util/ScriptRunnerTest.java    |   2 +-
 .../org/apache/sis/metadata/xml/TestUsingFile.java |   2 +-
 .../org/apache/sis/test/mock/package-info.java     |   2 +-
 .../test/org/apache/sis/test/sql/package-info.java |  29 ----
 .../apache/sis/util/iso/NameMarshallingTest.java   |   2 +-
 .../sis/xml/CharSequenceSubstitutionTest.java      |   2 +-
 .../apache/sis/xml/NilReasonMarshallingTest.java   |   2 +-
 .../org/apache/sis/xml/ReferenceResolverMock.java  |   2 +-
 .../org/apache/sis/xml/UUIDMarshallingTest.java    |   2 +-
 .../org/apache/sis/xml/XLinkMarshallingTest.java   |   2 +-
 .../sis/xml/bind/cat/CodeListMarshallingTest.java  |   2 +-
 .../sis/xml/bind/cat/EnumMarshallingTest.java      |   2 +-
 .../apache/sis/xml/bind/gco/PropertyTypeTest.java  |   2 +-
 .../apache/sis/xml/bind/gml/TimePeriodTest.java    |   2 +-
 .../sis/xml/bind/lan/FreeTextMarshallingTest.java  |   2 +-
 .../apache/sis/xml/bind/lan/LanguageCodeTest.java  |   2 +-
 .../metadata/replace/QualityParameterTest.java     |   2 +-
 .../metadata/replace/ServiceParameterTest.java     |   2 +-
 .../test}/AnnotationConsistencyCheck.java          |   2 +-
 .../{test/xml => xml/test}/DocumentComparator.java |   2 +-
 .../sis/{test/xml => xml/test}/InfiniteSet.java    |   2 +-
 .../sis/{test/xml => xml/test}/TestCase.java       |   2 +-
 .../sis/{test/xml => xml/test}/package-info.java   |   7 +-
 .../sis/xml/util/DocumentComparatorTest.java       |   2 +-
 .../org/apache/sis/xml/util/XmlUtilitiesTest.java  |   2 +-
 .../src/org.apache.sis.openoffice/bundle/README.md | 100 ++++++++++++
 .../bundle/build-instruction.html                  | 119 ---------------
 .../sis/xml/bind/fra/DataIdentificationTest.java   |   2 +-
 .../xml/bind/fra/DirectReferenceSystemTest.java    |   2 +-
 .../apache/sis/parameter/AbstractParameterValue.md |   5 +
 .../sis/parameter/AbstractParameterValue.txt       |   5 -
 .../sis/referencing/factory/sql/EPSG_README.md     |   7 +
 .../sis/referencing/factory/sql/EPSG_README.txt    |   7 -
 .../sis/referencing/operation/builder/README.md    |  33 ++++
 .../sis/referencing/operation/builder/readme.html  |  50 ------
 ...c3DtoVertical.txt => Geographic3DtoVertical.md} |   6 +-
 .../transform/SpecializableTransform1D.md          |   3 +
 .../transform/SpecializableTransform1D.txt         |   3 -
 .../sis/xml/bind/referencing/SC_GeographicCRS.md   |   4 +
 .../sis/xml/bind/referencing/SC_GeographicCRS.txt  |   4 -
 .../sis/parameter/ParameterMarshallingTest.java    |   2 +-
 .../sis/referencing/ImmutableIdentifierTest.java   |   2 +-
 .../referencing/crs/DefaultCompoundCRSTest.java    |   2 +-
 .../sis/referencing/crs/DefaultDerivedCRSTest.java |   2 +-
 .../referencing/crs/DefaultEngineeringCRSTest.java |   2 +-
 .../referencing/crs/DefaultGeodeticCRSTest.java    |   2 +-
 .../sis/referencing/crs/DefaultImageCRSTest.java   |   2 +-
 .../referencing/crs/DefaultProjectedCRSTest.java   |   2 +-
 .../sis/referencing/cs/DefaultCartesianCSTest.java |   2 +-
 .../referencing/cs/DefaultEllipsoidalCSTest.java   |   2 +-
 .../referencing/datum/DefaultEllipsoidTest.java    |   2 +-
 .../datum/DefaultGeodeticDatumTest.java            |   2 +-
 .../datum/DefaultPrimeMeridianTest.java            |   2 +-
 .../datum/DefaultTemporalDatumTest.java            |   2 +-
 .../datum/DefaultVerticalDatumTest.java            |   2 +-
 .../sis/referencing/factory/TestFactorySource.java |   4 +-
 .../referencing/factory/sql/EPSGInstallerTest.java |   2 +-
 .../factory/sql/epsg/DataScriptFormatter.java      |   2 +-
 .../sis/referencing/factory/sql/epsg/README.md     | 133 ++++++++++++++++
 .../sis/referencing/factory/sql/epsg/package.html  | 168 ---------------------
 .../DefaultConcatenatedOperationTest.java          |   2 +-
 .../operation/DefaultPassThroughOperationTest.java |   2 +-
 .../operation/SingleOperationMarshallingTest.java  |   2 +-
 .../apache/sis/test/integration/MetadataTest.java  |   4 +-
 .../sis/test/integration/MetadataVerticalTest.java |   2 +-
 .../CC_GeneralOperationParameterTest.java          |   2 +-
 .../CC_OperationParameterGroupTest.java            |   2 +-
 .../referencing/SecondDefiningParameterTest.java   |   2 +-
 .../sis/storage/geotiff/SelfConsistencyTest.java   |   2 +-
 .../sis/storage/netcdf/SelfConsistencyTest.java    |   2 +-
 .../org/apache/sis/storage/sql/SQLStoreTest.java   |   2 +-
 .../apache/sis/storage/sql/TestOnAllDatabases.java |   2 +-
 .../sql/feature/SelectionClauseWriterTest.java     |   2 +-
 .../sql/feature/TemporalValueGetterTest.java       |   2 +-
 .../sis/storage/sql/postgis/PostgresTest.java      |   2 +-
 .../main/org/apache/sis/storage/FeatureQuery.java  |  34 +++--
 .../org/apache/sis/storage/FeatureQueryTest.java   |  56 ++++++-
 .../sis/storage/esri/BILConsistencyTest.java       |   2 +-
 .../sis/storage/esri/BIPConsistencyTest.java       |   2 +-
 .../sis/storage/esri/BSQConsistencyTest.java       |   2 +-
 .../sis/storage/image/SelfConsistencyTest.java     |   2 +-
 .../test}/CoverageReadConsistency.java             |   2 +-
 .../storage => storage/test}/SubsampledImage.java  |   2 +-
 .../storage => storage/test}/package-info.java     |   4 +-
 .../sis/util/collection/TableColumnTest.java       |   4 +-
 .../test}/SerializableTableColumn.java             |   2 +-
 .../foreigner => util/test}/package-info.java      |   2 +-
 .../shapefile/jdbc/{readme.txt => README.md}       |   2 +
 netbeans-project/nbproject/project.properties      |   7 +-
 126 files changed, 778 insertions(+), 819 deletions(-)

diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyConsistencyCheck.java
index 0e8c17ff36,f144dbf6e4..f5ea5de365
--- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyConsistencyCheck.java
+++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/PropertyConsistencyCheck.java
@@@ -33,8 -33,11 +33,8 @@@ import org.apache.sis.metadata.internal
  import org.junit.Test;
  import org.apache.sis.test.TestUtilities;
  import org.apache.sis.test.DependsOn;
- import org.apache.sis.test.xml.AnnotationConsistencyCheck;
+ import org.apache.sis.xml.test.AnnotationConsistencyCheck;
  
 -// Specific to the geoapi-3.1 and geoapi-4.0 branches:
 -import org.opengis.util.ControlledVocabulary;
 -
  
  /**
   * Base class for tests done on metadata objects using reflection. This base class tests JAXB annotations
diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/xml/test/package-info.java
index 83ba867519,93de16db6d..25878b5a1b
--- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/xml/test/package-info.java
+++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/xml/test/package-info.java
@@@ -17,9 -17,9 +17,8 @@@
  
  /**
   * Utility methods for testing XML files or JAXB annotations.
-  * {@link org.apache.sis.test.xml.AnnotationConsistencyCheck} and
-  * {@code SchemaCompliance} verifies JAXB annotations.
-  * {@link org.apache.sis.test.xml.DocumentComparator} compares an actual XML document with the expected one.
+  * {@link org.apache.sis.xml.test.AnnotationConsistencyCheck} and
 - * {@link org.apache.sis.xml.test.SchemaCompliance} verifies JAXB annotations.
+  * {@link org.apache.sis.xml.test.DocumentComparator} compares an actual XML document with the expected one.
   *
   * <p>Objects defined in this package are only for SIS testing purpose any many change
   * in any future version without notice.</p>
diff --cc endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/FeatureQuery.java
index 3280f24bc2,172b87705a..4b48c05264
--- a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/FeatureQuery.java
+++ b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/FeatureQuery.java
@@@ -740,9 -738,9 +740,9 @@@ public class FeatureQuery extends Quer
              final NamedExpression item = projection[column];
              /*
               * For each property, get the expected type (mandatory) and its name (optional).
-              * A default name will be computed if no alias were explicitly given by user.
+              * A default name will be computed if no alias was explicitly given by the user.
               */
 -            final Expression<? super Feature,?> expression = item.expression;
 +            final Expression<? super AbstractFeature,?> expression = item.expression;
              final FeatureExpression<?,?> fex = FeatureExpression.castOrCopy(expression);
              final PropertyTypeBuilder resultType;
              if (fex == null || (resultType = fex.expectedType(valueType, ftb)) == null) {
diff --cc endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/FeatureQueryTest.java
index 4e4c1c51f2,a165f2bc7d..302150ac64
--- a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/FeatureQueryTest.java
+++ b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/FeatureQueryTest.java
@@@ -55,7 -63,7 +57,7 @@@ public final class FeatureQueryTest ext
      /**
       * An arbitrary number of features, all of the same type.
       */
-     private final AbstractFeature[] features;
 -    private Feature[] features;
++    private AbstractFeature[] features;
  
      /**
       * The {@link #features} array wrapped in a in-memory feature set.
@@@ -68,9 -76,31 +70,31 @@@
      private final FeatureQuery query;
  
      /**
-      * Creates a new test with a feature type composed of two attributes and one association.
+      * Creates a new test case.
       */
      public FeatureQueryTest() {
+         query = new FeatureQuery();
+     }
+ 
+     /**
+      * Creates a simple feature with a property flagged as an identifier.
+      */
+     private void createFeatureWithIdentifier() {
+         final FeatureTypeBuilder ftb = new FeatureTypeBuilder().setName("Test");
+         ftb.addAttribute(String.class).setName("id").addRole(AttributeRole.IDENTIFIER_COMPONENT);
 -        final FeatureType type = ftb.build();
 -        features = new Feature[] {
++        final DefaultFeatureType type = ftb.build();
++        features = new AbstractFeature[] {
+             type.newInstance()
+         };
+         features[0].setPropertyValue("id", "id-0");
+         featureSet = new MemoryFeatureSet(null, type, Arrays.asList(features));
+     }
+ 
+     /**
+      * Creates a set of features common to most tests.
+      * The feature type is composed of two attributes and one association.
+      */
+     private void createFeaturesWithAssociation() {
          FeatureTypeBuilder ftb;
  
          // A dependency of the test feature type.
@@@ -172,9 -217,10 +197,10 @@@
       */
      @Test
      public void testSelection() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setSelection(ff.equal(ff.property("value1", Integer.class),
 -                                    ff.literal(2), true, MatchAction.ALL));
 +                                    ff.literal(2)));
          verifyQueryResult(1, 2);
      }
  
@@@ -186,7 -232,8 +212,8 @@@
       */
      @Test
      public void testSelectionThroughAssociation() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setSelection(ff.equal(ff.property("dependency/value3"), ff.literal(18)));
          verifyQueryResult(3);
      }
@@@ -198,7 -245,8 +225,8 @@@
       */
      @Test
      public void testProjection() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setProjection(new FeatureQuery.NamedExpression(ff.property("value1", Integer.class), (String) null),
                              new FeatureQuery.NamedExpression(ff.property("value1", Integer.class), "renamed1"),
                              new FeatureQuery.NamedExpression(ff.literal("a literal"), "computed"));
@@@ -231,9 -279,10 +259,10 @@@
       */
      @Test
      public void testProjectionByNames() throws DataStoreException {
+         createFeaturesWithAssociation();
          query.setProjection("value2");
 -        final Feature instance = executeAndGetFirst();
 -        final PropertyType p = TestUtilities.getSingleton(instance.getType().getProperties(true));
 +        final AbstractFeature instance = executeAndGetFirst();
 +        final AbstractIdentifiedType p = TestUtilities.getSingleton(instance.getType().getProperties(true));
          assertEquals("value2", p.getName().toString());
      }
  
@@@ -245,7 -294,8 +274,8 @@@
       */
      @Test
      public void testDefaultColumnName() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setLimit(1);
          query.setProjection(
                  ff.add(ff.property("value1", Number.class), ff.literal(1)),
@@@ -270,7 -320,8 +300,8 @@@
       */
      @Test
      public void testProjectionOfAbstractType() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setProjection(new FeatureQuery.NamedExpression(ff.property("value1"),  (String) null),
                              new FeatureQuery.NamedExpression(ff.property("/*/unknown"), "unexpected"));
  
@@@ -299,7 -350,8 +330,8 @@@
       */
      @Test
      public void testProjectionThroughAssociation() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setProjection(new FeatureQuery.NamedExpression(ff.property("value1"),  (String) null),
                              new FeatureQuery.NamedExpression(ff.property("dependency/value3"), "value3"));
          query.setOffset(2);
@@@ -308,6 -360,20 +340,20 @@@
          assertEquals("value3", 25, instance.getPropertyValue("value3"));
      }
  
+     /**
+      * Tests {@link FeatureQuery#setProjection(FeatureQuery.NamedExpression...)} on a field
+      * which is a link, ensuring that the link name is preserved.
+      *
+      * @throws DataStoreException if an error occurred while executing the query.
+      */
+     @Test
+     public void testProjectionOfLink() throws DataStoreException {
+         createFeatureWithIdentifier();
+         query.setProjection(AttributeConvention.IDENTIFIER);
 -        final Feature instance = executeAndGetFirst();
++        final AbstractFeature instance = executeAndGetFirst();
+         assertEquals("id-0", instance.getPropertyValue(AttributeConvention.IDENTIFIER));
+     }
+ 
      /**
       * Shortcut for creating expression for a projection computed on-the-fly.
       */
@@@ -322,7 -388,8 +368,8 @@@
       */
      @Test
      public void testVirtualProjection() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setProjection(
                  new FeatureQuery.NamedExpression(ff.property("value1", Integer.class), (String) null),
                  virtualProjection(ff.property("value1", Integer.class), "renamed1"),
@@@ -365,7 -432,8 +412,8 @@@
       */
      @Test
      public void testIncorrectVirtualProjection() throws DataStoreException {
+         createFeaturesWithAssociation();
 -        final FilterFactory<Feature,?,?> ff = DefaultFilterFactory.forFeatures();
 +        final DefaultFilterFactory<AbstractFeature,?,?> ff = DefaultFilterFactory.forFeatures();
          query.setProjection(new FeatureQuery.NamedExpression(ff.property("value1", Integer.class), (String) null),
                              virtualProjection(ff.property("valueMissing", Integer.class), "renamed1"));