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 2019/08/27 19:53:24 UTC

[sis] branch geoapi-4.0 updated (90949f7 -> 25af314)

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

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


    from 90949f7  Reduce the amount of HSQL-specific changes to SQL statements. We do not need anymore to omit "UNIQUE" keywords or to rename "CHR" as "CHAR". Avoid the "CREATE CACHED TABLE" statement by setting a default value instead.
     new bceb569  Remove the MORE_WORDS hack. It is no longer needed since we avoid using the HSQLDB-specific "CREATE CACHED TABLE" statement. A comment has been added to the `addReplacement(String, String)` method for allowing us to reintroduce this hack if we need it again in the future.
     new 1c8d8b1  Update links in documentation.
     new e0fa493  Minor documentation update.
     new 25af314  Spelling change: implementor -> implementer.

The 4 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:
 .../org/apache/sis/feature/AbstractFeature.java    |  8 ++---
 .../java/org/apache/sis/filter/package-info.java   |  4 +++
 .../sis/internal/metadata/sql/ScriptRunner.java    | 37 +++++++---------------
 .../org/apache/sis/metadata/AbstractMetadata.java  |  4 +--
 .../apache/sis/metadata/ModifiableMetadata.java    |  4 +--
 .../org/apache/sis/metadata/iso/ISOMetadata.java   |  2 +-
 .../org/apache/sis/util/iso/AbstractFactory.java   |  2 +-
 .../java/org/apache/sis/util/iso/AbstractName.java |  2 +-
 .../org/apache/sis/geometry/AbstractEnvelope.java  |  2 +-
 .../java/org/apache/sis/io/wkt/Convention.java     |  2 +-
 .../java/org/apache/sis/io/wkt/package-info.java   |  2 +-
 .../sis/parameter/DefaultParameterDescriptor.java  |  4 +--
 .../parameter/DefaultParameterDescriptorGroup.java |  4 +--
 .../org/apache/sis/parameter/ParameterBuilder.java |  4 +--
 .../org/apache/sis/parameter/Parameterized.java    |  2 +-
 .../java/org/apache/sis/parameter/Parameters.java  |  6 ++--
 .../org/apache/sis/parameter/package-info.java     |  4 +--
 .../java/org/apache/sis/referencing/Builder.java   |  4 +--
 .../sis/referencing/crs/DefaultCompoundCRS.java    |  4 +--
 .../sis/referencing/crs/DefaultDerivedCRS.java     |  4 +--
 .../sis/referencing/crs/DefaultEngineeringCRS.java |  4 +--
 .../sis/referencing/crs/DefaultGeocentricCRS.java  |  4 +--
 .../sis/referencing/crs/DefaultGeographicCRS.java  |  4 +--
 .../sis/referencing/crs/DefaultImageCRS.java       |  4 +--
 .../sis/referencing/crs/DefaultParametricCRS.java  |  4 +--
 .../sis/referencing/crs/DefaultProjectedCRS.java   |  4 +--
 .../sis/referencing/crs/DefaultTemporalCRS.java    |  4 +--
 .../sis/referencing/crs/DefaultVerticalCRS.java    |  4 +--
 .../org/apache/sis/referencing/cs/AbstractCS.java  |  2 +-
 .../org/apache/sis/referencing/cs/AxisFilter.java  |  2 +-
 .../sis/referencing/cs/DefaultCartesianCS.java     |  4 +--
 .../cs/DefaultCoordinateSystemAxis.java            |  6 ++--
 .../sis/referencing/cs/DefaultCylindricalCS.java   |  4 +--
 .../sis/referencing/cs/DefaultEllipsoidalCS.java   |  4 +--
 .../apache/sis/referencing/cs/DefaultLinearCS.java |  4 +--
 .../sis/referencing/cs/DefaultParametricCS.java    |  4 +--
 .../apache/sis/referencing/cs/DefaultPolarCS.java  |  4 +--
 .../sis/referencing/cs/DefaultSphericalCS.java     |  4 +--
 .../apache/sis/referencing/cs/DefaultTimeCS.java   |  4 +--
 .../sis/referencing/cs/DefaultUserDefinedCS.java   |  4 +--
 .../sis/referencing/cs/DefaultVerticalCS.java      |  4 +--
 .../sis/referencing/datum/DefaultEllipsoid.java    |  4 +--
 .../referencing/datum/DefaultEngineeringDatum.java |  4 +--
 .../referencing/datum/DefaultGeodeticDatum.java    |  4 +--
 .../sis/referencing/datum/DefaultImageDatum.java   |  4 +--
 .../referencing/datum/DefaultParametricDatum.java  |  4 +--
 .../referencing/datum/DefaultPrimeMeridian.java    |  4 +--
 .../referencing/datum/DefaultTemporalDatum.java    |  4 +--
 .../referencing/datum/DefaultVerticalDatum.java    |  4 +--
 .../referencing/factory/IdentifiedObjectSet.java   |  2 +-
 .../factory/sql/InstallationScriptProvider.java    |  4 +--
 .../operation/CoordinateOperationRegistry.java     |  2 +-
 .../operation/DefaultConcatenatedOperation.java    |  4 +--
 .../operation/DefaultOperationMethod.java          |  4 +--
 .../operation/DefaultPassThroughOperation.java     |  4 +--
 .../operation/DefaultTransformation.java           |  4 +--
 .../operation/projection/NormalizedProjection.java |  2 +-
 .../operation/projection/package-info.java         |  2 +-
 .../transform/AbstractLinearTransform.java         |  2 +-
 .../operation/transform/AbstractMathTransform.java |  4 +--
 .../operation/transform/ContextualParameters.java  |  2 +-
 .../epsg/{MethodDimensions.sql => DebugTools.sql}  |  6 ++--
 .../java/org/apache/sis/io/CompoundFormat.java     |  2 +-
 .../java/org/apache/sis/math/MathFunctions.java    |  2 +-
 .../org/apache/sis/measure/MeasurementRange.java   |  2 +-
 .../java/org/apache/sis/measure/NumberRange.java   |  2 +-
 .../main/java/org/apache/sis/measure/Range.java    |  2 +-
 .../main/java/org/apache/sis/setup/OptionKey.java  |  4 +--
 .../org/apache/sis/util/LenientComparable.java     |  2 +-
 .../src/main/java/org/apache/sis/util/Version.java |  4 +--
 .../sis/util/iso/ResourceInternationalString.java  |  2 +-
 .../sis/util/iso/SimpleInternationalString.java    |  2 +-
 .../java/org/apache/sis/util/logging/Logging.java  |  2 +-
 .../org/apache/sis/storage/DataStoreProvider.java  | 12 +++----
 .../org/apache/sis/storage/DataStoreRegistry.java  |  2 +-
 .../org/apache/sis/storage/StorageConnector.java   |  2 +-
 76 files changed, 147 insertions(+), 156 deletions(-)
 rename core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/epsg/{MethodDimensions.sql => DebugTools.sql} (90%)


[sis] 03/04: Minor documentation update.

Posted by de...@apache.org.
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

commit e0fa4932f45ded14148378af6f4731b5a3042ac0
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Tue Aug 27 18:40:53 2019 +0200

    Minor documentation update.
---
 .../src/main/java/org/apache/sis/filter/package-info.java           | 4 ++++
 .../factory/sql/epsg/{MethodDimensions.sql => DebugTools.sql}       | 6 +++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/package-info.java b/core/sis-feature/src/main/java/org/apache/sis/filter/package-info.java
index 7291456..3235dc8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/package-info.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/package-info.java
@@ -19,6 +19,10 @@
  * Filters features according their properties.
  * A <cite>filter expression</cite> is a construct used to constraint a feature set to a subset.
  *
+ * <p>All filter and expression implementations provided by Apache SIS are thread-safe.
+ * They are not necessarily stateless however; for example a filter may remember which
+ * warnings have been reported in order to avoid to report the same warning twice.</p>
+ *
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.0
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/epsg/MethodDimensions.sql b/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/epsg/DebugTools.sql
similarity index 90%
rename from core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/epsg/MethodDimensions.sql
rename to core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/epsg/DebugTools.sql
index b8a72bf..89c665f 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/epsg/MethodDimensions.sql
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/epsg/DebugTools.sql
@@ -5,9 +5,9 @@
 
 
 --
--- Creates views for manual inspections of EPSG database. We recommand to execute
--- those scripts on a PostgreSQL database installation after an EPSG update. This
--- file is not actually used in any JUnit test.
+-- Creates views for manual inspections of EPSG dataset. This script can be executed after EPSG database
+-- installation on PostgreSQL. This file is never read by Apache SIS; it is provided only as a debugging
+-- tool when the developer is looking for some information about the EPSG dataset.
 --
 
 SET client_encoding = 'UTF8';


[sis] 04/04: Spelling change: implementor -> implementer.

Posted by de...@apache.org.
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

commit 25af314460466159a8d6a41a1b5d4450b70fe5b3
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Tue Aug 27 19:03:20 2019 +0200

    Spelling change: implementor -> implementer.
---
 .../main/java/org/apache/sis/feature/AbstractFeature.java    |  8 ++++----
 .../main/java/org/apache/sis/metadata/AbstractMetadata.java  |  4 ++--
 .../java/org/apache/sis/metadata/ModifiableMetadata.java     |  4 ++--
 .../main/java/org/apache/sis/metadata/iso/ISOMetadata.java   |  2 +-
 .../main/java/org/apache/sis/util/iso/AbstractFactory.java   |  2 +-
 .../src/main/java/org/apache/sis/util/iso/AbstractName.java  |  2 +-
 .../main/java/org/apache/sis/geometry/AbstractEnvelope.java  |  2 +-
 .../src/main/java/org/apache/sis/io/wkt/Convention.java      |  2 +-
 .../src/main/java/org/apache/sis/io/wkt/package-info.java    |  2 +-
 .../org/apache/sis/parameter/DefaultParameterDescriptor.java |  4 ++--
 .../sis/parameter/DefaultParameterDescriptorGroup.java       |  4 ++--
 .../main/java/org/apache/sis/parameter/ParameterBuilder.java |  4 ++--
 .../main/java/org/apache/sis/parameter/Parameterized.java    |  2 +-
 .../src/main/java/org/apache/sis/parameter/Parameters.java   |  6 +++---
 .../src/main/java/org/apache/sis/parameter/package-info.java |  4 ++--
 .../src/main/java/org/apache/sis/referencing/Builder.java    |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultCompoundCRS.java   |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultDerivedCRS.java    |  4 ++--
 .../apache/sis/referencing/crs/DefaultEngineeringCRS.java    |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultGeocentricCRS.java |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultGeographicCRS.java |  4 ++--
 .../java/org/apache/sis/referencing/crs/DefaultImageCRS.java |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultParametricCRS.java |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultProjectedCRS.java  |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultTemporalCRS.java   |  4 ++--
 .../org/apache/sis/referencing/crs/DefaultVerticalCRS.java   |  4 ++--
 .../main/java/org/apache/sis/referencing/cs/AbstractCS.java  |  2 +-
 .../main/java/org/apache/sis/referencing/cs/AxisFilter.java  |  2 +-
 .../org/apache/sis/referencing/cs/DefaultCartesianCS.java    |  4 ++--
 .../sis/referencing/cs/DefaultCoordinateSystemAxis.java      |  6 +++---
 .../org/apache/sis/referencing/cs/DefaultCylindricalCS.java  |  4 ++--
 .../org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java  |  4 ++--
 .../java/org/apache/sis/referencing/cs/DefaultLinearCS.java  |  4 ++--
 .../org/apache/sis/referencing/cs/DefaultParametricCS.java   |  4 ++--
 .../java/org/apache/sis/referencing/cs/DefaultPolarCS.java   |  4 ++--
 .../org/apache/sis/referencing/cs/DefaultSphericalCS.java    |  4 ++--
 .../java/org/apache/sis/referencing/cs/DefaultTimeCS.java    |  4 ++--
 .../org/apache/sis/referencing/cs/DefaultUserDefinedCS.java  |  4 ++--
 .../org/apache/sis/referencing/cs/DefaultVerticalCS.java     |  4 ++--
 .../org/apache/sis/referencing/datum/DefaultEllipsoid.java   |  4 ++--
 .../sis/referencing/datum/DefaultEngineeringDatum.java       |  4 ++--
 .../apache/sis/referencing/datum/DefaultGeodeticDatum.java   |  4 ++--
 .../org/apache/sis/referencing/datum/DefaultImageDatum.java  |  4 ++--
 .../apache/sis/referencing/datum/DefaultParametricDatum.java |  4 ++--
 .../apache/sis/referencing/datum/DefaultPrimeMeridian.java   |  4 ++--
 .../apache/sis/referencing/datum/DefaultTemporalDatum.java   |  4 ++--
 .../apache/sis/referencing/datum/DefaultVerticalDatum.java   |  4 ++--
 .../apache/sis/referencing/factory/IdentifiedObjectSet.java  |  2 +-
 .../referencing/factory/sql/InstallationScriptProvider.java  |  4 ++--
 .../referencing/operation/CoordinateOperationRegistry.java   |  2 +-
 .../referencing/operation/DefaultConcatenatedOperation.java  |  4 ++--
 .../sis/referencing/operation/DefaultOperationMethod.java    |  4 ++--
 .../referencing/operation/DefaultPassThroughOperation.java   |  4 ++--
 .../sis/referencing/operation/DefaultTransformation.java     |  4 ++--
 .../operation/projection/NormalizedProjection.java           |  2 +-
 .../sis/referencing/operation/projection/package-info.java   |  2 +-
 .../operation/transform/AbstractLinearTransform.java         |  2 +-
 .../operation/transform/AbstractMathTransform.java           |  4 ++--
 .../operation/transform/ContextualParameters.java            |  2 +-
 .../src/main/java/org/apache/sis/io/CompoundFormat.java      |  2 +-
 .../src/main/java/org/apache/sis/math/MathFunctions.java     |  2 +-
 .../main/java/org/apache/sis/measure/MeasurementRange.java   |  2 +-
 .../src/main/java/org/apache/sis/measure/NumberRange.java    |  2 +-
 .../src/main/java/org/apache/sis/measure/Range.java          |  2 +-
 .../src/main/java/org/apache/sis/setup/OptionKey.java        |  4 ++--
 .../src/main/java/org/apache/sis/util/LenientComparable.java |  2 +-
 .../src/main/java/org/apache/sis/util/Version.java           |  4 ++--
 .../org/apache/sis/util/iso/ResourceInternationalString.java |  2 +-
 .../org/apache/sis/util/iso/SimpleInternationalString.java   |  2 +-
 .../src/main/java/org/apache/sis/util/logging/Logging.java   |  2 +-
 .../main/java/org/apache/sis/storage/DataStoreProvider.java  | 12 ++++++------
 .../main/java/org/apache/sis/storage/DataStoreRegistry.java  |  2 +-
 .../main/java/org/apache/sis/storage/StorageConnector.java   |  2 +-
 73 files changed, 128 insertions(+), 128 deletions(-)

diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
index 03793c4..26a33ba 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
@@ -136,7 +136,7 @@ public abstract class AbstractFeature implements Feature, Serializable {
      * desired, then {@link #getPropertyValue(String)} is preferred since it gives to SIS a chance to
      * avoid the creation of {@link AbstractAttribute} or {@link AbstractAssociation} instances.</p>
      *
-     * <div class="note"><b>Note for subclass implementors:</b>
+     * <div class="note"><b>Note for subclass implementers:</b>
      * the default implementation returns an instance that redirect all read and write operations to
      * {@link #getPropertyValue(String)} and {@link #setPropertyValue(String, Object)} respectively.
      * That default implementation is intended to make easier for developers to create their own
@@ -144,7 +144,7 @@ public abstract class AbstractFeature implements Feature, Serializable {
      * a new {@code Property} instance is created every time that this {@code getProperty(String)} method is invoked,
      * and the returned {@code Property} implementation is not very efficient
      * since it has to perform multiple lookups and type checks.
-     * Implementors are encouraged to override this method if they can provide a more efficient implementation.
+     * Implementers are encouraged to override this method if they can provide a more efficient implementation.
      * Note that this is already the case when using implementations created by {@link DefaultFeatureType#newInstance()}.</div>
      *
      * @param  name  the property name.
@@ -179,7 +179,7 @@ public abstract class AbstractFeature implements Feature, Serializable {
      * in this feature. When default implementations are sufficient, the {@link #setPropertyValue(String, Object)}
      * method is preferred.
      *
-     * <div class="note"><b>Note for subclass implementors:</b>
+     * <div class="note"><b>Note for subclass implementers:</b>
      * the default implementation verifies that the given property has the expected type and a null or empty
      * {@linkplain AbstractAttribute#characteristics() map of characteristics}, then delegates to
      * {@link #setPropertyValue(String, Object)}.
@@ -187,7 +187,7 @@ public abstract class AbstractFeature implements Feature, Serializable {
      * customized <code>AbstractFacture</code> implementations, but has drawbacks:
      * the given {@code Property} instance is not stored (only its {@linkplain AbstractAttribute#getValue() value}
      * is stored), and it can not have custom {@linkplain AbstractAttribute#characteristics() characteristics}.
-     * Implementors are encouraged to override this method if they can provide a better implementation.
+     * Implementers are encouraged to override this method if they can provide a better implementation.
      * Note that this is already the case when using implementations created by {@link DefaultFeatureType#newInstance()}.</div>
      *
      * @param  property  the property to set.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
index f1b83b8..d20bfcc 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
@@ -89,7 +89,7 @@ public abstract class AbstractMetadata implements LenientComparable, Emptiable {
      * Subclasses will typically return a hard-coded constant such as
      * {@link MetadataStandard#ISO_19115}.
      *
-     * <div class="section">Note for implementors</div>
+     * <div class="section">Note for implementers</div>
      * Implementation of this method shall not depend on the object state,
      * since this method may be indirectly invoked by copy constructors.
      *
@@ -124,7 +124,7 @@ public abstract class AbstractMetadata implements LenientComparable, Emptiable {
      *
      * Note that empty properties can be removed by calling the {@link ModifiableMetadata#prune()} method.
      *
-     * <div class="section">Note for implementors</div>
+     * <div class="section">Note for implementers</div>
      * The default implementation uses Java reflection indirectly, by iterating over all entries
      * returned by {@link MetadataStandard#asValueMap(Object, Class, KeyNamePolicy, ValueExistencePolicy)}.
      * Subclasses that override this method should usually not invoke {@code super.isEmpty()},
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
index 56b5b24..a6a196f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
@@ -504,7 +504,7 @@ public abstract class ModifiableMetadata extends AbstractMetadata {
      * Implementations shall invoke {@link #writeList writeList} or {@link #writeSet writeSet} methods
      * instead than this method when the collection type is enforced by ISO specification.
      * When the type is not enforced by the specification, some freedom are allowed at
-     * implementor choice. The default implementation invokes {@link #collectionType(Class)}
+     * implementer choice. The default implementation invokes {@link #collectionType(Class)}
      * in order to get a hint about whether a {@link List} or a {@link Set} should be used.
      *
      * @param  <E>          the type represented by the {@code Class} argument.
@@ -815,7 +815,7 @@ public abstract class ModifiableMetadata extends AbstractMetadata {
      * <div class="section">Choosing a collection type</div>
      * Implementations shall invoke {@link #nonNullList nonNullList(…)} or {@link #nonNullSet nonNullSet(…)}
      * instead than this method when the collection type is enforced by ISO specification.
-     * When the type is not enforced by the specification, some freedom are allowed at implementor choice.
+     * When the type is not enforced by the specification, some freedom are allowed at implementer choice.
      * The default implementation invokes {@link #collectionType(Class)} in order to get a hint about whether
      * a {@link List} or a {@link Set} should be used.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
index a9445f3..653e016 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
@@ -114,7 +114,7 @@ public class ISOMetadata extends ModifiableMetadata implements IdentifiedObject,
      * Returns the metadata standard implemented by subclasses,
      * which is {@linkplain MetadataStandard#ISO_19115 ISO 19115}.
      *
-     * <div class="section">Note for implementors</div>
+     * <div class="section">Note for implementers</div>
      * Subclasses shall not override this method in a way that depends on the object state,
      * since this method may be indirectly invoked by copy constructors (i.e. is may be
      * invoked before this metadata object is fully constructed).
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractFactory.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractFactory.java
index 5136f9f..082746c 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractFactory.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractFactory.java
@@ -37,7 +37,7 @@ public abstract class AbstractFactory implements Factory {
     }
 
     /**
-     * Returns the implementor of this factory, or {@code null} if unknown.
+     * Returns the implementer of this factory, or {@code null} if unknown.
      * The default implementation tries to fetch this information from the
      * manifest associated to the package of {@code this.getClass()}.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java
index 42f0ecb..b4eb2b3 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java
@@ -48,7 +48,7 @@ import org.apache.sis.util.resources.Errors;
  * This class has a natural ordering that is inconsistent with {@link #equals(Object)}.
  * See {@link #compareTo(GenericName)} for more information.
  *
- * <div class="section">Note for implementors</div>
+ * <div class="section">Note for implementers</div>
  * Subclasses need only to implement the following methods:
  * <ul>
  *   <li>{@link #scope()}</li>
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
index 6a55239..2abbbad 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
@@ -61,7 +61,7 @@ import static org.apache.sis.math.MathFunctions.isNegativeZero;
  * or {@link Cloneable} interfaces. The internal representation, and the choice to be cloneable or
  * serializable, is left to subclasses.
  *
- * <p>Implementors needs to define at least the following methods:</p>
+ * <p>Implementers needs to define at least the following methods:</p>
  * <ul>
  *   <li>{@link #getDimension()}</li>
  *   <li>{@link #getCoordinateReferenceSystem()}</li>
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Convention.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Convention.java
index 868db42..596e2f6 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Convention.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Convention.java
@@ -29,7 +29,7 @@ import org.apache.sis.metadata.iso.citation.Citations;
  *
  * <div class="section">WKT 1 variants</div>
  * The WKT 2 format should be parsed and formatted consistently by all software products.
- * But the WKT 1 format has been interpreted differently by various implementors.
+ * But the WKT 1 format has been interpreted differently by various implementers.
  * Apache SIS can adapt itself to different WKT variants, sometime automatically. But some aspects can not be guessed.
  * One noticeable source of confusion is the unit of measurement of {@code PRIMEM[…]} and {@code PARAMETER[…]} elements:
  *
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
index 922d46b..6fd2462 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
@@ -53,7 +53,7 @@
  *       <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html">shown on GeoAPI</a>.</li>
  * </ul>
  *
- * The WKT 1 format has been interpreted differently by various implementors.
+ * The WKT 1 format has been interpreted differently by various implementers.
  * One noticeable difference is the unit of measurement of prime meridians and projection parameters.
  * The WKT 2 format aims to solve the inter-operability problem caused by such mismatches,
  * but not all software products support this new format. Consequently importing or exporting data from/to a software
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptor.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptor.java
index 77af49f..6c14677 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptor.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptor.java
@@ -297,9 +297,9 @@ public class DefaultParameterDescriptor<T> extends AbstractParameterDescriptor i
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ParameterDescriptor.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ParameterDescriptor}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their own
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their own
      * set of interfaces.</div>
      *
      * @return {@code ParameterDescriptor.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java
index b472fa0..e3bed60 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java
@@ -307,9 +307,9 @@ public class DefaultParameterDescriptorGroup extends AbstractParameterDescriptor
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ParameterDescriptorGroup.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ParameterDescriptorGroup}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their own
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their own
      * set of interfaces.</div>
      *
      * @return {@code ParameterDescriptorGroup.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java
index 12cdfcd..59975c0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterBuilder.java
@@ -31,8 +31,8 @@ import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
 /**
  * Helper class for {@linkplain DefaultParameterDescriptor parameter descriptor} instantiations.
  * This builder can be helpful to operation or process <em>providers</em> (e.g. map projection
- * implementors). Operation <em>users</em> do not need this builder since they can invoke
- * {@link ParameterDescriptor#createValue()} on the descriptor provided by the implementor.
+ * implementers). Operation <em>users</em> do not need this builder since they can invoke
+ * {@link ParameterDescriptor#createValue()} on the descriptor provided by the implementer.
  *
  * <div class="section">Identification properties</div>
  * The following properties are cleared after a call to any {@code createXXX(…)} method,
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameterized.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameterized.java
index a45d85a..2d6c01c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameterized.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameterized.java
@@ -43,7 +43,7 @@ public interface Parameterized {
      *
      * <div class="section">Modifying parameter values</div>
      * Unless explicitly allowed by the implementation class, callers should not modify the values
-     * returned by this method. Implementors are encouraged to protect their internal data by returning
+     * returned by this method. Implementers are encouraged to protect their internal data by returning
      * an unmodifiable view or a copy of their parameters. If the caller wishes to edit parameter values,
      * then (s)he should {@linkplain DefaultParameterValueGroup#clone() clone} the parameters before to
      * modify them, then use the modified parameters for creating a new {@code Parameterized} object.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
index fdf1f3b..2d4a2b7 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
@@ -91,10 +91,10 @@ import org.apache.sis.util.Debug;
  * (i.e. returned values are converted to the units of measurement specified by the given parameter descriptor).
  *
  *
- * <div class="section">Note for subclass implementors</div>
+ * <div class="section">Note for subclass implementers</div>
  * This class does not implement any method from the {@link ParameterValueGroup} interface
  * (this class is not named “{@code AbstractParameterValueGroup}” for that reason).
- * Extending this class or extending {@link Object} make almost no difference for implementors;
+ * Extending this class or extending {@link Object} make almost no difference for implementers;
  * {@code Parameters} purpose is mostly to extend the API for users convenience.
  * All methods in this class get their information from the {@link ParameterValueGroup} methods.
  * In addition, unless otherwise specified, methods in this class is isolated from all others:
@@ -390,7 +390,7 @@ public abstract class Parameters implements ParameterValueGroup, Cloneable {
          * However we will not throw the exception if this method is invoked from the getParameter(…)
          * method of a Parameters instance wrapping a non-SIS implementation. The reason is that for
          * foreigner implementations, the package-private getParameter(…) method will conservatively
-         * delegate to the public parameter(…) method, in case the implementor overrides it. But for
+         * delegate to the public parameter(…) method, in case the implementer overrides it. But for
          * Apache SIS implementations in this package, we rely on the exception being thrown.
          *
          * Note that all classes in this package except UnmodifiableParameterValueGroup override this
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/package-info.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/package-info.java
index 25cec60..458a1d6 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/package-info.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/package-info.java
@@ -58,7 +58,7 @@
  * <div class="section">Usage</div>
  * When using this {@code org.apache.sis.parameter} package, the starting point is usually to obtain a
  * {@linkplain org.apache.sis.parameter.DefaultParameterDescriptorGroup parameter group descriptor} for
- * the operation of interest. Those groups are provided by the operation implementors, so users do not
+ * the operation of interest. Those groups are provided by the operation implementers, so users do not
  * need to create their own.
  *
  * <p>Given a group descriptor, users can obtain a new instance of parameter values by a call to the
@@ -68,7 +68,7 @@
  * method is provided for fetching a parameter regardless of whether it was present or not — optional parameters
  * are created when first needed.</p>
  *
- * <div class="note"><b>Example:</b> the following code snippet assumes that the implementor of a Mercator projection
+ * <div class="note"><b>Example:</b> the following code snippet assumes that the implementer of a Mercator projection
  * provides a {@code ParameterDescriptorGroup} instance in a {@code PARAMETERS} static constant:
  *
  * {@preformat java
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
index ccb9fea..cdce1fa 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
@@ -147,7 +147,7 @@ import static org.apache.sis.util.ArgumentChecks.*;
  * See {@link org.apache.sis.parameter.ParameterBuilder} class javadoc for more examples with the
  * <cite>Mercator</cite> projection parameters.
  *
- * <div class="section">Note for subclass implementors</div>
+ * <div class="section">Note for subclass implementers</div>
  * <ul>
  *   <li>The type {@code <B>} shall be exactly the subclass type.
  *       For performance reasons, this is verified only if Java assertions are enabled.</li>
@@ -188,7 +188,7 @@ public abstract class Builder<B extends Builder<B>> {
      * {@value org.opengis.referencing.ReferenceSystem#DOMAIN_OF_VALIDITY_KEY} and
      * {@value org.opengis.referencing.ReferenceSystem#SCOPE_KEY} keys.
      *
-     * <p>See <cite>Notes for subclass implementors</cite> in class javadoc for usage conditions.</p>
+     * <p>See <cite>Notes for subclass implementers</cite> in class javadoc for usage conditions.</p>
      *
      * @see #onCreate(boolean)
      */
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java
index 6dac6b1..6e4b764 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java
@@ -304,9 +304,9 @@ public class DefaultCompoundCRS extends AbstractCRS implements CompoundCRS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code CompoundCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code CompoundCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code CompoundCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
index e10a321..9b44dea 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
@@ -406,9 +406,9 @@ public class DefaultDerivedCRS extends AbstractDerivedCRS<Conversion> implements
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code DerivedCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code DerivedCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code DerivedCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
index 54ea601..2e92f28 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
@@ -184,9 +184,9 @@ public class DefaultEngineeringCRS extends AbstractCRS implements EngineeringCRS
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code EngineeringCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code EngineeringCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code EngineeringCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java
index 2c18da0..798cd98 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java
@@ -204,9 +204,9 @@ public class DefaultGeocentricCRS extends DefaultGeodeticCRS implements Geocentr
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code GeocentricCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code GeocentricCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code GeocentricCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
index 49ce77b..a8fcd20 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
@@ -200,9 +200,9 @@ public class DefaultGeographicCRS extends DefaultGeodeticCRS implements Geograph
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code GeographicCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code GeographicCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code GeographicCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
index e0e51d0..4fed78f 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
@@ -177,9 +177,9 @@ public class DefaultImageCRS extends AbstractCRS implements ImageCRS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ImageCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ImageCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code ImageCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
index 55fbcdb..ac910ab 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
@@ -177,9 +177,9 @@ public class DefaultParametricCRS extends AbstractCRS implements ParametricCRS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ParametricCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ParametricCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code ParametricCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
index 5388e19..2338eb7 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
@@ -201,9 +201,9 @@ public class DefaultProjectedCRS extends AbstractDerivedCRS<Projection> implemen
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ProjectedCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ProjectedCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code ProjectedCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
index 02f2a5f..1286ae9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
@@ -239,9 +239,9 @@ public class DefaultTemporalCRS extends AbstractCRS implements TemporalCRS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code TemporalCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code TemporalCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code TemporalCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
index dc198f2..16b5b88 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
@@ -175,9 +175,9 @@ public class DefaultVerticalCRS extends AbstractCRS implements VerticalCRS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code VerticalCRS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code VerticalCRS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code VerticalCRS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
index 21a0622..00e9d08 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
@@ -283,7 +283,7 @@ public class AbstractCS extends AbstractIdentifiedObject implements CoordinateSy
      * with {@linkplain org.apache.sis.measure.Units#METRE metre} or
      * {@linkplain org.apache.sis.measure.Units#DEGREE degree} units.
      *
-     * <p><b>Note for implementors:</b> since this method is invoked at construction time, it shall not depend
+     * <p><b>Note for implementers:</b> since this method is invoked at construction time, it shall not depend
      * on this object's state. This method is not in public API for that reason.</p>
      *
      * @param  direction  the direction to test for compatibility (never {@code null}).
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxisFilter.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxisFilter.java
index 05c15d5..1342835 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxisFilter.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AxisFilter.java
@@ -38,7 +38,7 @@ import javax.measure.Unit;
  *
  * <div class="section">Default implementation</div>
  * All methods in this interface have a default implementation equivalent to <i>no-operation</i>.
- * Implementors need to override only the methods for the aspects to change.
+ * Implementers need to override only the methods for the aspects to change.
  *
  * <div class="section">Limitations</div>
  * This interface is not for changing axis order.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java
index 7590365..c92b259 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCartesianCS.java
@@ -208,9 +208,9 @@ public class DefaultCartesianCS extends DefaultAffineCS implements CartesianCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code CartesianCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code CartesianCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code CartesianCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
index 9050526..17102e0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
@@ -388,9 +388,9 @@ public class DefaultCoordinateSystemAxis extends AbstractIdentifiedObject implem
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code CoordinateSystemAxis.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code CoordinateSystemAxis}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their own
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their own
      * set of interfaces.</div>
      *
      * @return {@code CoordinateSystemAxis.class} or a user-defined sub-interface.
@@ -641,7 +641,7 @@ public class DefaultCoordinateSystemAxis extends AbstractIdentifiedObject implem
              * Checking the abbreviation is not sufficient. For example the polar angle and the
              * spherical latitude have the same abbreviation (θ). Legacy names like "Longitude"
              * (in addition to ISO 19111 "Geodetic longitude") bring more potential confusion.
-             * Furthermore, not all implementors use the greek letters. For example most CRS in
+             * Furthermore, not all implementers use the greek letters. For example most CRS in
              * WKT format use the "Lat" abbreviation instead of the greek letter φ.
              * For comparisons without metadata, we ignore the unreliable abbreviation and check
              * the axis name instead. These names are constrained by ISO 19111 specification
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java
index 7c9f87c..d147c29 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCylindricalCS.java
@@ -176,9 +176,9 @@ public class DefaultCylindricalCS extends AbstractCS implements CylindricalCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code CylindricalCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code CylindricalCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code CylindricalCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java
index d2423d0..28711cc 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCS.java
@@ -217,9 +217,9 @@ public class DefaultEllipsoidalCS extends AbstractCS implements EllipsoidalCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code EllipsoidalCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code EllipsoidalCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code EllipsoidalCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java
index 588567c..e86b162 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultLinearCS.java
@@ -167,9 +167,9 @@ public class DefaultLinearCS extends AbstractCS implements LinearCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code LinearCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code LinearCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code LinearCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultParametricCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultParametricCS.java
index ae090f0..3f9c616 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultParametricCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultParametricCS.java
@@ -149,9 +149,9 @@ public class DefaultParametricCS extends AbstractCS implements ParametricCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ParametricCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ParametricCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code ParametricCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java
index 5458797..18a3eea 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultPolarCS.java
@@ -174,9 +174,9 @@ public class DefaultPolarCS extends AbstractCS implements PolarCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code PolarCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code PolarCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code PolarCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java
index 41f89c6..ab171a7 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultSphericalCS.java
@@ -177,9 +177,9 @@ public class DefaultSphericalCS extends AbstractCS implements SphericalCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code SphericalCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code SphericalCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code SphericalCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java
index af5fd1a..f0e6c37 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultTimeCS.java
@@ -168,9 +168,9 @@ public class DefaultTimeCS extends AbstractCS implements TimeCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code TimeCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code TimeCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code TimeCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultUserDefinedCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultUserDefinedCS.java
index f8d6958..d5e9ec0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultUserDefinedCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultUserDefinedCS.java
@@ -166,9 +166,9 @@ public class DefaultUserDefinedCS extends AbstractCS implements UserDefinedCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code UserDefinedCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code UserDefinedCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code UserDefinedCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java
index c2fb5ab..373add8 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultVerticalCS.java
@@ -184,9 +184,9 @@ public class DefaultVerticalCS extends AbstractCS implements VerticalCS {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code VerticalCS.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code VerticalCS}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code VerticalCS.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
index 5be0bd7..1aa2ec7 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
@@ -347,9 +347,9 @@ public class DefaultEllipsoid extends AbstractIdentifiedObject implements Ellips
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code Ellipsoid.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code Ellipsoid}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code Ellipsoid.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java
index b49da4b..0c06e0e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEngineeringDatum.java
@@ -151,9 +151,9 @@ public class DefaultEngineeringDatum extends AbstractDatum implements Engineerin
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code EngineeringDatum.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code EngineeringDatum}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code EngineeringDatum.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
index 6226814..5e3dfe5 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
@@ -315,9 +315,9 @@ public class DefaultGeodeticDatum extends AbstractDatum implements GeodeticDatum
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code GeodeticDatum.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code GeodeticDatum}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code GeodeticDatum.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java
index b4209ce..8f7e0ca 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultImageDatum.java
@@ -172,9 +172,9 @@ public class DefaultImageDatum extends AbstractDatum implements ImageDatum {
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ImageDatum.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ImageDatum}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with
      * their own set of interfaces.</div>
      *
      * @return {@code ImageDatum.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultParametricDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultParametricDatum.java
index 7a38be0..428f062 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultParametricDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultParametricDatum.java
@@ -162,9 +162,9 @@ public class DefaultParametricDatum extends AbstractDatum implements ParametricD
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ParametricDatum.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code TemporalDatum}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code ParametricDatum.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
index 86c03b2..f6026ec 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
@@ -200,9 +200,9 @@ public class DefaultPrimeMeridian extends AbstractIdentifiedObject implements Pr
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code PrimeMeridian.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code PrimeMeridian}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code PrimeMeridian.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java
index 9b0690b..e67fa9e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultTemporalDatum.java
@@ -198,9 +198,9 @@ public class DefaultTemporalDatum extends AbstractDatum implements TemporalDatum
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code TemporalDatum.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code TemporalDatum}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code TemporalDatum.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java
index f401f3d..226e67a 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultVerticalDatum.java
@@ -199,9 +199,9 @@ public class DefaultVerticalDatum extends AbstractDatum implements VerticalDatum
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code VerticalDatum.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code VerticalDatum}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code VerticalDatum.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/IdentifiedObjectSet.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/IdentifiedObjectSet.java
index 90f42f8..f373906 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/IdentifiedObjectSet.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/IdentifiedObjectSet.java
@@ -74,7 +74,7 @@ import org.apache.sis.util.Classes;
  *
  * <div class="section">Thread safety</div>
  * This class is thread-safe is the underlying {@linkplain #factory} is also thread-safe.
- * However, implementors are encouraged to wrap in {@linkplain java.util.Collections#unmodifiableSet unmodifiable set}
+ * However, implementers are encouraged to wrap in {@linkplain java.util.Collections#unmodifiableSet unmodifiable set}
  * if they intent to cache {@code IdentifiedObjectSet} instances.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/InstallationScriptProvider.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/InstallationScriptProvider.java
index 87ab62e..eba272a 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/InstallationScriptProvider.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/InstallationScriptProvider.java
@@ -175,7 +175,7 @@ public abstract class InstallationScriptProvider extends InstallationResources {
 
     /**
      * Returns a reader for the SQL script at the given index. Contents may be read from files in a local directory,
-     * or from resources in a JAR file, or from entries in a ZIP file, or any other means at implementor choice.
+     * or from resources in a JAR file, or from entries in a ZIP file, or any other means at implementer choice.
      * The {@link BufferedReader} instances shall be closed by the caller.
      *
      * <div class="section">EPSG case</div>
@@ -192,7 +192,7 @@ public abstract class InstallationScriptProvider extends InstallationResources {
      *   <li>Content of {@link #FINISH}, an optional data definition and data control script that create indexes and set permissions.</li>
      * </ol>
      *
-     * Implementors are free to return a different set of scripts with equivalent content.
+     * Implementers are free to return a different set of scripts with equivalent content.
      *
      * <div class="section">Default implementation</div>
      * The default implementation invokes {@link #openStream(String)} – except for {@link #PREPARE} and {@link #FINISH}
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
index 91feda4..291af97 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
@@ -1074,7 +1074,7 @@ class CoordinateOperationRegistry {
      *
      *       <div class="note"><b>Note:</b> we do not have many objects that are both a {@code CoordinateOperation}
      *       and a {@code MathTransform}, but that combination is not forbidden. Since such practice is sometime
-     *       convenient for the implementor, Apache SIS allows that.</div></li>
+     *       convenient for the implementer, Apache SIS allows that.</div></li>
      *
      *   <li>If the given {@code type} is null, then this method infers the type from whether the given properties
      *       specify and accuracy or not. If those properties were created by the {@link #properties(Identifier)}
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
index 647ed97..eb4260e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
@@ -312,9 +312,9 @@ final class DefaultConcatenatedOperation extends AbstractCoordinateOperation imp
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code ConcatenatedOperation.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code ConcatenatedOperation}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code ConcatenatedOperation.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
index b36588c..4bcdfe7 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
@@ -499,9 +499,9 @@ public class DefaultOperationMethod extends AbstractIdentifiedObject implements
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code OperationMethod.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this information since GeoAPI does not define {@code OperationMethod}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code OperationMethod.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
index c493207..15215c1 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
@@ -153,9 +153,9 @@ public class DefaultPassThroughOperation extends AbstractCoordinateOperation imp
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code PassThroughOperation.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code PassThroughOperation}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code PassThroughOperation.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java
index dde28e2..293e0cc 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java
@@ -153,9 +153,9 @@ public class DefaultTransformation extends AbstractSingleOperation implements Tr
      * Returns the GeoAPI interface implemented by this class.
      * The SIS implementation returns {@code Transformation.class}.
      *
-     * <div class="note"><b>Note for implementors:</b>
+     * <div class="note"><b>Note for implementers:</b>
      * Subclasses usually do not need to override this method since GeoAPI does not define {@code Transformation}
-     * sub-interface. Overriding possibility is left mostly for implementors who wish to extend GeoAPI with their
+     * sub-interface. Overriding possibility is left mostly for implementers who wish to extend GeoAPI with their
      * own set of interfaces.</div>
      *
      * @return {@code Transformation.class} or a user-defined sub-interface.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java
index e236aeb..47fd3e9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java
@@ -679,7 +679,7 @@ public abstract class NormalizedProjection extends AbstractMathTransform2D imple
      * The input longitude and latitude are usually (but not always) in the range [-π … π] and [-π/2 … π/2] respectively.
      * However values outside those ranges are accepted on the assumption that most implementations use those values
      * only in trigonometric functions like {@linkplain Math#sin(double) sine} and {@linkplain Math#cos(double) cosine}.
-     * If this assumption is not applicable to a particular subclass, then it is implementor's responsibility to check
+     * If this assumption is not applicable to a particular subclass, then it is implementer responsibility to check
      * the range.
      *
      * @param  srcPts    the array containing the source point coordinate, as (<var>longitude</var>, <var>latitude</var>)
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/package-info.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/package-info.java
index a603748..0fd27c9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/package-info.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/package-info.java
@@ -18,7 +18,7 @@
 /**
  * Map projection implementations.
  * This package is mostly for documentation purpose (each projection documents its name and parameters)
- * and for implementors who want to extend a map projection. This package should usually not be used directly.
+ * and for implementers who want to extend a map projection. This package should usually not be used directly.
  *
  * <p>The best way to get a projection is to use the
  * {@linkplain org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory coordinate operation factory}
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java
index 3bfe198..68c153e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java
@@ -246,7 +246,7 @@ abstract class AbstractLinearTransform extends AbstractMathTransform implements
 
     /**
      * Compares this math transform with an object which is known to be of the same class.
-     * Implementors can safely cast the {@code object} argument to their subclass.
+     * Implementers can safely cast the {@code object} argument to their subclass.
      *
      * @param  object  the object to compare with this transform.
      * @return {@code true} if the given object is considered equals to this math transform.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java
index 2f6ec40..fe320c8 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform.java
@@ -333,8 +333,8 @@ public abstract class AbstractMathTransform extends FormattableObject
      *   the same. Computing those two information in a single step can help to reduce redundant calculation.</li>
      * </ul>
      *
-     * <div class="section">Note for implementors</div>
-     * The source and destination may overlap. Consequently, implementors must read all source
+     * <div class="section">Note for implementers</div>
+     * The source and destination may overlap. Consequently, implementers must read all source
      * coordinate values before to start writing the transformed coordinates in the destination array.
      *
      * @param  srcPts    the array containing the source coordinate (can not be {@code null}).
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java
index 83da5d7..b4495ec 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java
@@ -328,7 +328,7 @@ public class ContextualParameters extends Parameters implements Serializable {
      * the {@linkplain #getMatrix(MatrixRole) normalization / denormalization} transforms, in the kernel, or both.</p>
      *
      * <div class="note"><b>Note:</b>
-     * The definition of "kernel" is left to implementors.
+     * The definition of "kernel" is left to implementers.
      * In the particular case of Apache SIS implementation of map projections,
      * kernels are instances of {@link org.apache.sis.referencing.operation.projection.NormalizedProjection}.
      * Other "kernels" in SIS are {@link EllipsoidToCentricTransform} and {@link MolodenskyTransform}.</div>
diff --git a/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java b/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java
index 59ea33b..56c8cf3 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/io/CompoundFormat.java
@@ -348,7 +348,7 @@ public abstract class CompoundFormat<T> extends Format implements Localized {
      * <div class="note"><b>Note:</b>
      * Strictly speaking, an {@link IOException} could still occur if a subclass overrides the above {@code format}
      * method and performs some I/O operation outside the given {@link StringBuffer}. However this is not the intended
-     * usage of this class and implementors should avoid such unexpected I/O operation.</div>
+     * usage of this class and implementers should avoid such unexpected I/O operation.</div>
      *
      * @param  object      the object to format.
      * @param  toAppendTo  where to format the object.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java b/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
index 48be82e..02020dc 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
@@ -117,7 +117,7 @@ public final class MathFunctions extends Static {
      * <blockquote>
      *    There are actually two types of NaNs, signaling NaNs and quiet NaNs. Java doesn't support the features necessary
      *    to reliably distinguish the two. However, the relevant point is that copying a signaling NaN may (or may not, at
-     *    the implementors discretion) yield a quiet NaN — a NaN with a different bit pattern (IEEE 754 6.2). Therefore, on
+     *    the implementers discretion) yield a quiet NaN — a NaN with a different bit pattern (IEEE 754 6.2). Therefore, on
      *    IEEE 754 compliant platforms it may be impossible to find a signaling NaN stored in an array since a signaling NaN
      *    passed as an argument to binarySearch may get replaced by a quiet NaN.
      * </blockquote>
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java b/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java
index 5966f5f..963e95e 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java
@@ -50,7 +50,7 @@ import org.apache.sis.util.resources.Errors;
  *
  * <div class="section">Immutability and thread safety</div>
  * This class is immutable and thus inherently thread-safe.
- * Subclasses may or may not be immutable, at implementation choice. But implementors are
+ * Subclasses may or may not be immutable, at implementation choice. But implementers are
  * encouraged to make sure that subclasses remain immutable for more predictable behavior.
  *
  * @author  Martin Desruisseaux (IRD)
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java b/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java
index 6010bd1..a3dad27 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/NumberRange.java
@@ -65,7 +65,7 @@ import org.apache.sis.util.collection.WeakHashSet;
  *
  * <div class="section">Immutability and thread safety</div>
  * This class and the {@link MeasurementRange} subclasses are immutable, and thus inherently thread-safe.
- * Other subclasses may or may not be immutable, at implementation choice. But implementors are encouraged
+ * Other subclasses may or may not be immutable, at implementation choice. But implementers are encouraged
  * to make sure that all subclasses remain immutable for more predictable behavior.
  *
  * <div class="section">Shared instances</div>
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java b/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java
index edf0c3f..20dfe34 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java
@@ -75,7 +75,7 @@ import org.apache.sis.util.Numbers;
  * <div class="section">Immutability and thread safety</div>
  * This class and the {@link NumberRange} / {@link MeasurementRange} subclasses are immutable,
  * and thus inherently thread-safe. Other subclasses may or may not be immutable, at implementation choice.
- * But implementors are encouraged to make sure that all subclasses remain immutable for more predictable behavior.
+ * But implementers are encouraged to make sure that all subclasses remain immutable for more predictable behavior.
  *
  * @author  Joe White
  * @author  Martin Desruisseaux (Geomatys)
diff --git a/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java b/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java
index 2aa8cc5..4e632e1 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/setup/OptionKey.java
@@ -256,7 +256,7 @@ public class OptionKey<T> implements Serializable {
 
     /**
      * Returns the option value in the given map for this key, or {@code null} if none.
-     * This is a convenience method for implementors, which can be used as below:
+     * This is a convenience method for implementers, which can be used as below:
      *
      * {@preformat java
      *     public <T> T getOption(final OptionKey<T> key) {
@@ -274,7 +274,7 @@ public class OptionKey<T> implements Serializable {
 
     /**
      * Sets a value for this option key in the given map, or in a new map if the given map is {@code null}.
-     * This is a convenience method for implementors, which can be used as below:
+     * This is a convenience method for implementers, which can be used as below:
      *
      * {@preformat java
      *     public <T> void setOption(final OptionKey<T> key, final T value) {
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/LenientComparable.java b/core/sis-utility/src/main/java/org/apache/sis/util/LenientComparable.java
index 79262ce..690a0e8 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/LenientComparable.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/LenientComparable.java
@@ -155,7 +155,7 @@ public interface LenientComparable {
      *     }
      * }
      *
-     * Implementors shall ensure that the following conditions hold. Unless the {@code equals}
+     * Implementers shall ensure that the following conditions hold. Unless the {@code equals}
      * behavior is clearly documented in the interface javadoc (as for example in the Java
      * collection framework), {@link ComparisonMode#STRICT} is the only reliable mode for
      * this method implementation.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/Version.java b/core/sis-utility/src/main/java/org/apache/sis/util/Version.java
index 09816be..571e9d7 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/Version.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/Version.java
@@ -36,7 +36,7 @@ import static org.apache.sis.internal.system.Modules.MINOR_VERSION;
  *
  * <div class="section">Immutability and thread safety</div>
  * This class is immutable and thus inherently thread-safe.
- * Subclasses may or may not be immutable, at implementation choice. But implementors are
+ * Subclasses may or may not be immutable, at implementation choice. But implementers are
  * encouraged to make sure that subclasses remain immutable for more predictable behavior.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
@@ -266,7 +266,7 @@ public class Version implements CharSequence, Comparable<Version>, Serializable
                  * One value is a text while the other value is a number.  We could be tempted to
                  * force a comparison by converting the number to a String and then invoking the
                  * String.compareTo(String) method, but this strategy would violate the following
-                 * contract from Comparable.compareTo(Object):  "The implementor must also ensure
+                 * contract from Comparable.compareTo(Object):  "The implementer must also ensure
                  * that the relation is transitive". Use case:
                  *
                  *    A is the integer 10
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/iso/ResourceInternationalString.java b/core/sis-utility/src/main/java/org/apache/sis/util/iso/ResourceInternationalString.java
index aac93a8..98a3d16 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/iso/ResourceInternationalString.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/iso/ResourceInternationalString.java
@@ -73,7 +73,7 @@ import org.apache.sis.util.ArgumentChecks;
  *
  * <div class="section">Immutability and thread safety</div>
  * This class is immutable and thus inherently thread-safe if the bundles created by {@link #getBundle(Locale)}
- * is also immutable. Subclasses may or may not be immutable, at implementation choice. But implementors are
+ * is also immutable. Subclasses may or may not be immutable, at implementation choice. But implementers are
  * encouraged to make sure that subclasses remain immutable for more predictable behavior.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/iso/SimpleInternationalString.java b/core/sis-utility/src/main/java/org/apache/sis/util/iso/SimpleInternationalString.java
index e3c826a..76c4c30 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/iso/SimpleInternationalString.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/iso/SimpleInternationalString.java
@@ -36,7 +36,7 @@ import org.apache.sis.util.ArgumentChecks;
  *
  * <div class="section">Immutability and thread safety</div>
  * This class is immutable and thus inherently thread-safe.
- * Subclasses may or may not be immutable, at implementation choice. But implementors are
+ * Subclasses may or may not be immutable, at implementation choice. But implementers are
  * encouraged to make sure that subclasses remain immutable for more predictable behavior.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java b/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java
index 119a6f7..18e3489 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/logging/Logging.java
@@ -30,7 +30,7 @@ import org.apache.sis.internal.system.Modules;
 
 
 /**
- * A set of utilities method for configuring loggings in SIS. Library implementors should fetch
+ * A set of utilities method for configuring loggings in SIS. Library implementers should fetch
  * their loggers using the {@link #getLogger(String)} static method defined in this {@code Logging}
  * class rather than the one defined in the standard {@link Logger} class, in order to give SIS a
  * chance to redirect the logs to an other framework like
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
index f30882d..da71aba 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
@@ -67,7 +67,7 @@ public abstract class DataStoreProvider {
      * A parameter named {@value} should be included in the group of parameters returned by {@link #getOpenParameters()}.
      * The parameter value is often a {@link java.net.URI} or a {@link java.nio.file.Path}, but other types are allowed.
      *
-     * <p>Implementors are encouraged to define a parameter with this name
+     * <p>Implementers are encouraged to define a parameter with this name
      * to ensure a common and consistent definition among providers.
      * The parameter should be defined as mandatory and typed with a well-known Java class such as
      * {@link java.net.URI}, {@link java.nio.file.Path}, JDBC {@linkplain javax.sql.DataSource}, <i>etc</i>.
@@ -85,7 +85,7 @@ public abstract class DataStoreProvider {
      * {@link #getOpenParameters()} if the data store supports write operations. The parameter value is often a
      * {@link Boolean} and the default value should be {@link Boolean#FALSE} or equivalent.
      *
-     * <p>Implementors are encouraged to define an <em>optional</em> parameter with this name in complement to the
+     * <p>Implementers are encouraged to define an <em>optional</em> parameter with this name in complement to the
      * {@value #LOCATION} parameter <em>only if</em> write operations are supported. If this parameter value is not
      * set or is set to {@code false}, then the {@link #open(ParameterValueGroup)} method should fail if no file or
      * database exists at the URL or path given by the {@value #LOCATION} parameter. Otherwise if this parameter is
@@ -184,7 +184,7 @@ public abstract class DataStoreProvider {
      * Those parameters provide an alternative to {@link StorageConnector} for opening a {@link DataStore}
      * from a path or URL, together with additional information like character encoding.
      *
-     * <p>Implementors are responsible for declaring all parameters and whether they are mandatory or optional.
+     * <p>Implementers are responsible for declaring all parameters and whether they are mandatory or optional.
      * It is recommended to define at least a parameter named {@value #LOCATION}, completed by {@value #CREATE}
      * if the data store supports write operations.
      * That parameter will be recognized by the default {@code DataStoreProvider} methods and used whenever a
@@ -228,8 +228,8 @@ public abstract class DataStoreProvider {
      * only that there appears to be a reasonable chance of success based on a brief inspection of the
      * {@linkplain StorageConnector#getStorage() storage object} or contents.
      *
-     * <p>Implementors are responsible for restoring the input to its original stream position on return of this method.
-     * Implementors can use a mark/reset pair for this purpose. Marks are available as
+     * <p>Implementers are responsible for restoring the input to its original stream position on return of this method.
+     * Implementers can use a mark/reset pair for this purpose. Marks are available as
      * {@link java.nio.ByteBuffer#mark()}, {@link java.io.InputStream#mark(int)} and
      * {@link javax.imageio.stream.ImageInputStream#mark()}.</p>
      *
@@ -277,7 +277,7 @@ public abstract class DataStoreProvider {
      * (for example an {@link java.io.InputStream}).
      *
      * <div class="section">Implementation note</div>
-     * Implementors shall invoke {@link StorageConnector#closeAllExcept(Object)} after {@code DataStore}
+     * Implementers shall invoke {@link StorageConnector#closeAllExcept(Object)} after {@code DataStore}
      * creation, keeping open only the needed resource.
      *
      * @param  connector  information about the storage (URL, stream, JDBC connection, <i>etc</i>).
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreRegistry.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreRegistry.java
index 75d1597..b6f4853 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreRegistry.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreRegistry.java
@@ -249,7 +249,7 @@ search:     do {
             /*
              * If a provider has been found, or if a provider returned UNDETERMINED, use that one
              * for opening a DataStore. Note that if more than one provider returned UNDETERMINED,
-             * the selected one is arbitrary and may change in different execution. Implementors
+             * the selected one is arbitrary and may change in different execution. Implementers
              * shall avoid the UNDETERMINED value as much as possible (this value should be used
              * only for RAW image format).
              */
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java
index 655af4e..363177d 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/StorageConnector.java
@@ -856,7 +856,7 @@ public class StorageConnector implements Serializable {
      * only for handling the cases where using a view has an indirect impact on another view.</p>
      *
      * <div class="note"><b>Rational:</b>
-     * {@link DataStoreProvider#probeContent(StorageConnector)} contract requires that implementors reset the
+     * {@link DataStoreProvider#probeContent(StorageConnector)} contract requires that implementers reset the
      * input stream themselves. However if {@link ChannelDataInput} or {@link InputStreamReader} has been used,
      * then the user performed a call to {@link ChannelDataInput#reset()} (for instance), which did not reseted
      * the underlying input stream. So we need to perform the missing {@link InputStream#reset()} here, then


[sis] 01/04: Remove the MORE_WORDS hack. It is no longer needed since we avoid using the HSQLDB-specific "CREATE CACHED TABLE" statement. A comment has been added to the `addReplacement(String, String)` method for allowing us to reintroduce this hack if we need it again in the future.

Posted by de...@apache.org.
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

commit bceb569558bfb7e3cf1a14aaf9261e786db06856
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Tue Aug 27 17:49:09 2019 +0200

    Remove the MORE_WORDS hack. It is no longer needed since we avoid using the HSQLDB-specific "CREATE CACHED TABLE" statement.
    A comment has been added to the `addReplacement(String, String)` method for allowing us to reintroduce this hack if we need it again in the future.
---
 .../sis/internal/metadata/sql/ScriptRunner.java    | 35 +++++++---------------
 1 file changed, 10 insertions(+), 25 deletions(-)

diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
index 0f5662f..d7a96d2 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
@@ -110,14 +110,6 @@ public class ScriptRunner implements AutoCloseable {
     private final Map<String,String> replacements = new HashMap<>();
 
     /**
-     * A sentinel value for the {@linkplain #replacements} map meaning that {@code ScriptRunner}
-     * needs to look also at the word after the word associated to {@code MORE_WORDS}.
-     *
-     * @see #addReplacement(String, String)
-     */
-    protected static final String MORE_WORDS = "…";
-
-    /**
      * The quote character for identifiers actually used in the database,
      * as determined by {@link DatabaseMetaData#getIdentifierQuoteString()}.
      */
@@ -392,16 +384,15 @@ public class ScriptRunner implements AutoCloseable {
      * <div class="note"><b>Example</b>
      * this is used for mapping the table names in the EPSG scripts to table names as they were in the MS-Access
      * flavor of EPSG database. It may also contains the mapping between SQL keywords used in the SQL scripts to
-     * SQL keywords understood by the database (for example Derby does not support the {@code TEXT} data type,
-     * which need to be replaced by {@code VARCHAR}).</div>
+     * SQL keywords understood by the database. For example if a database does not support the {@code "TEXT"}
+     * data type, it may be replaced by {@code "LONG VARCHAR"}.</div>
      *
-     * If a text to replace contains two or more words, then this map needs to contain an entry for the first word
-     * associated to the {@link #MORE_WORDS} value. For example if one needs to replace the {@code "CREATE TABLE"}
-     * words, then in addition to the {@code "CREATE TABLE"} entry the {@code replacements} map shall also contain
-     * a {@code "CREATE"} entry associated with the {@link #MORE_WORDS} value.
+     * <b>Limitation:</b> the {@code inScript} word to replace must be a single word with no space.
+     * If the text to replace contains two words (for example {@code "CREATE TABLE"}), then revert
+     * the commit after {@code 90949f7b5d9e58af90c517cadebc845faf734167} for bringing back this functionality.
      *
-     * @param  inScript     the word in the script which need to be replaced.
-     * @param  replacement  the word to use instead.
+     * @param  inScript     the single word in the script which need to be replaced.
+     * @param  replacement  the word(s) to use instead of {@code inScript} word.
      */
     protected final void addReplacement(final String inScript, final String replacement) {
         if (replacements.put(inScript, replacement) != null) {
@@ -544,13 +535,9 @@ parseLine:  while (pos < length) {
                          */
                         final String word = buffer.substring(start, pos);
                         final String replace = replacements.get(word);
-                        boolean moreWords = false;
                         if (replace != null) {
-                            moreWords = replace.equals(MORE_WORDS);
-                            if (!moreWords) {
-                                length = buffer.replace(start, pos, replace).length();
-                                pos = start + replace.length();
-                            }
+                            length = buffer.replace(start, pos, replace).length();
+                            pos = start + replace.length();
                         }
                         /*
                          * Skip whitespaces and set the 'c' variable to the next character, which may be either
@@ -563,9 +550,7 @@ parseLine:  while (pos < length) {
                             c = buffer.codePointAt(pos);
                             n = Character.charCount(c);
                         }
-                        if (!moreWords) {
-                            start = pos;
-                        }
+                        start = pos;
                     }
                 }
                 switch (c) {


[sis] 02/04: Update links in documentation.

Posted by de...@apache.org.
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

commit 1c8d8b1ef165dd19afc49cb031504ce4179100e3
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Tue Aug 27 17:54:11 2019 +0200

    Update links in documentation.
---
 .../main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
index d7a96d2..0f2884d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
@@ -313,6 +313,8 @@ public class ScriptRunner implements AutoCloseable {
                  * HSQLDB stores tables in memory by default. For storing the tables on files, we have to
                  * use "CREATE CACHED TABLE" statement, which is HSQL-specific. For avoiding SQL dialect,
                  * the following statement change the default setting on current connection.
+                 *
+                 * Reference: http://hsqldb.org/doc/guide/dbproperties-chapt.html#dpc_db_props_url
                  */
                 statement.execute("SET DATABASE DEFAULT TABLE TYPE CACHED");
                 break;
@@ -389,7 +391,7 @@ public class ScriptRunner implements AutoCloseable {
      *
      * <b>Limitation:</b> the {@code inScript} word to replace must be a single word with no space.
      * If the text to replace contains two words (for example {@code "CREATE TABLE"}), then revert
-     * the commit after {@code 90949f7b5d9e58af90c517cadebc845faf734167} for bringing back this functionality.
+     * commit {@code bceb569558bfb7e3cf1a14aaf9261e786db06856} for bringing back this functionality.
      *
      * @param  inScript     the single word in the script which need to be replaced.
      * @param  replacement  the word(s) to use instead of {@code inScript} word.