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 0096500b348c061ed84fdd6eb1a9a358ee0a7cb1
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat May 7 15:06:03 2022 +0200

    Add documentation and missing annotations.
    Fix some javadoc errors.
---
 application/sis-javafx/src/main/artifact/bin/sisfx |  2 +-
 .../main/java/org/apache/sis/gui/package-info.java |  8 ++++++
 .../org/apache/sis/cloud/aws/s3/package-info.java  |  2 +-
 .../iso/acquisition/DefaultRequirement.java        |  2 ++
 .../referencing/operation/projection/Mercator.java | 13 +++++-----
 .../java/org/apache/sis/internal/util/URLs.java    |  9 +++++--
 .../java/org/apache/sis/setup/Configuration.java   |  2 +-
 .../apache/sis/setup/OptionalInstallations.java    | 30 ++++++++++++++--------
 pom.xml                                            |  1 +
 .../sis/storage/landsat/LandsatStoreProvider.java  |  7 +++--
 .../sis/storage/geotiff/GeoTiffStoreProvider.java  | 11 +++++---
 .../storage/image/WorldFileStoreProvider.java      |  2 +-
 .../sis/storage/AbstractGridCoverageResource.java  |  2 +-
 .../org/apache/sis/storage/DataStoreProvider.java  |  4 +--
 14 files changed, 63 insertions(+), 32 deletions(-)

diff --git a/application/sis-javafx/src/main/artifact/bin/sisfx 
b/application/sis-javafx/src/main/artifact/bin/sisfx
index daf89b2356..1439fff62f 100755
--- a/application/sis-javafx/src/main/artifact/bin/sisfx
+++ b/application/sis-javafx/src/main/artifact/bin/sisfx
@@ -19,7 +19,7 @@
 set -o errexit
 
 BASE_DIR="`dirname $0`/.."
-source "$BASE_DIR/conf/setenv.sh"
+. "$BASE_DIR/conf/setenv.sh"
 
 SIS_DATA="${SIS_DATA:-$BASE_DIR/data}"
 export SIS_DATA
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/package-info.java 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/package-info.java
index 30f10ab6eb..8686e46534 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/package-info.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/package-info.java
@@ -17,6 +17,14 @@
 
 /**
  * JavaFX application for Apache SIS.
+ * See the <a href="https://sis.apache.org/javafx.html";>JavaFX application</a> 
page
+ * on the Apache SIS web site for more information.
+ *
+ * <h2>File size limit</h2>
+ * There is usually no size limit when viewing only the metadata, because only 
the file headers are read at that time.
+ * When viewing the data, there is no size limit if the data are pyramided and 
tiled with tiles of reasonable size,
+ * because the application loads only the tiles needed for the area being 
displayed.
+ * An example of file format supporting tiling is GeoTIFF.
  *
  * @author  Smaniotto Enzo (GSoC)
  * @author  Johann Sorel (Geomatys)
diff --git 
a/cloud/sis-cloud-S3/src/main/java/org/apache/sis/cloud/aws/s3/package-info.java
 
b/cloud/sis-cloud-S3/src/main/java/org/apache/sis/cloud/aws/s3/package-info.java
index 2b21a08471..ba209f9fcb 100644
--- 
a/cloud/sis-cloud-S3/src/main/java/org/apache/sis/cloud/aws/s3/package-info.java
+++ 
b/cloud/sis-cloud-S3/src/main/java/org/apache/sis/cloud/aws/s3/package-info.java
@@ -30,7 +30,7 @@
  *
  * <p>Keys can be paths with components separated by the {@code '/'} separator.
  * The password and the region can be specified at
- * {@linkplain java.nio.file.FileSystem#newFileSystem file system 
initialization time}.
+ * {@linkplain java.nio.file.FileSystems#newFileSystem file system 
initialization time}.
  * The endpoint (e.g. {@code "s3.eu-central-1.amazonaws.com"}) shall 
<em>not</em> be specified in the URI.
  * In particular the region ({@code "eu-central-1"} in above example) can 
depend on the server location
  * instead of the data to access, and can be a global configuration for the 
server.</p>
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
index 1117a8dc43..0624a193aa 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
@@ -333,6 +333,8 @@ public class DefaultRequirement extends ISOMetadata 
implements Requirement {
     }
 
     /**
+     * Sets the plan that identifies solution to satisfy the requirement.
+     *
      * @param  newValues  the new satisfied plans values.
      */
     public void setSatisfiedPlans(final Collection<? extends Plan> newValues) {
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java
index c22a8bd162..520c75f4dc 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java
@@ -147,12 +147,13 @@ public class Mercator extends ConformalProjection {
     /**
      * The type of Mercator projection. Possible values are:
      * <ul>
-     *   <li>{@link Variant#DEFAULT}   if this projection is a Mercator 
variant A or B.</li>
-     *   <li>{@link Variant#REGIONAL}  if this projection is the "Mercator 
(variant C)" case.</li>
-     *   <li>{@link Variant#SPHERICAL} if this projection is the "Mercator 
(Spherical)" case.</li>
-     *   <li>{@link Variant#PSEUDO}    if this projection is the "Pseudo 
Mercator" case.</li>
-     *   <li>{@link Variant#MILLER}    if this projection is the "Miller 
Cylindrical" case.</li>
-     *   <li>{@link Variant#AUXILIARY} if this projection is the "Mercator 
Auxiliary Sphere" case.</li>
+     *   <li>{@link Variant#ONE_PARALLEL}  if this projection is a Mercator 
variant A.</li>
+     *   <li>{@link Variant#TWO_PARALLELS} if this projection is a Mercator 
variant A.</li>
+     *   <li>{@link Variant#REGIONAL}      if this projection is the "Mercator 
(variant C)" case.</li>
+     *   <li>{@link Variant#SPHERICAL}     if this projection is the "Mercator 
(Spherical)" case.</li>
+     *   <li>{@link Variant#PSEUDO}        if this projection is the "Pseudo 
Mercator" case.</li>
+     *   <li>{@link Variant#MILLER}        if this projection is the "Miller 
Cylindrical" case.</li>
+     *   <li>{@link Variant#AUXILIARY}     if this projection is the "Mercator 
Auxiliary Sphere" case.</li>
      * </ul>
      *
      * Other cases may be added in the future.
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/internal/util/URLs.java 
b/core/sis-utility/src/main/java/org/apache/sis/internal/util/URLs.java
index 1f49c4f770..50ea417881 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/URLs.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/URLs.java
@@ -20,8 +20,13 @@ import org.apache.sis.util.Static;
 
 
 /**
- * Hard-coded URLs other than XML namespaces.
- * The are mostly for documentation.
+ * Hard-coded URLs other than XML namespaces. Those URLs are mostly for 
documentation.
+ * Note: other URLs are listed in the following classes:
+ *
+ * <ul>
+ *   <li>{@link org.apache.sis.xml.Namespaces} for XML namespaces.</li>
+ *   <li>{@link org.apache.sis.setup.OptionalInstallations} for location of 
optional data to download.</li>
+ * </ul>
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.2
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/setup/Configuration.java 
b/core/sis-utility/src/main/java/org/apache/sis/setup/Configuration.java
index 21538bf16a..8efdf4d2b5 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/setup/Configuration.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/setup/Configuration.java
@@ -85,7 +85,7 @@ public final class Configuration {
      *       Apache SIS may create the database since it is located in the 
directory managed by Apache SIS.</li>
      *   <li>Otherwise if the {@code non-free:sis-embedded-data} module is 
present on the classpath,
      *       use the embedded database.</li>
-     *   <li>Otherwise if the {@code "derby.system.home"} property is defined,
+     *   <li>Otherwise if the "{@systemProperty derby.system.home}" property 
is defined,
      *       use the data source for {@code "jdbc:derby:SpatialMetadata"} 
database.
      *       This database will <strong>not</strong> be created if it does not 
exist.</li>
      * </ol>
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/setup/OptionalInstallations.java
 
b/core/sis-utility/src/main/java/org/apache/sis/setup/OptionalInstallations.java
index ed564b1205..4b2b11be7e 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/setup/OptionalInstallations.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/setup/OptionalInstallations.java
@@ -45,25 +45,22 @@ import static org.apache.sis.internal.util.Constants.EPSG;
  *   <li>{@code "EPSG"} for the EPSG geodetic dataset.</li>
  * </ul>
  *
+ * Data are downloaded from URLs hard-coded in this class. Those URLs depend 
on the Apache SIS versions in use,
+ * typically because more recent SIS versions will reference more recent data.
+ * The default URLs can be overridden using system properties documented in 
{@link #getDownloadURL(String)}.
+ * This is useful as a workaround if a URL is no longer accessible.
+ *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.2
  * @since   1.1
  * @module
  */
 public abstract class OptionalInstallations extends InstallationResources 
implements Localized {
-    /**
-     * The {@systemProperty org.apache.sis.epsg.downloadURL} system property 
for overriding
-     * the {@link #DOWNLOAD_URL} value. This is useful for testing purpose 
before a release,
-     * or for providing a work-around for bad URL after release.
-     *
-     * @since 1.2
-     */
-    private static final String DOWNLOAD_PROPERTY = 
"org.apache.sis.epsg.downloadURL";
-
     /**
      * Where to download the EPSG scripts after user has approved the terms of 
use.
      */
-    private static final String DOWNLOAD_URL = 
"https://repo1.maven.org/maven2/org/apache/sis/non-free/sis-epsg/1.1/sis-epsg-1.1.jar";;
+    private static final String EPSG_DOWNLOAD_URL =
+            
"https://repo1.maven.org/maven2/org/apache/sis/non-free/sis-epsg/1.1/sis-epsg-1.1.jar";;
 
     /**
      * Estimation of the EPSG database size after installation, in megabytes.
@@ -173,10 +170,21 @@ public abstract class OptionalInstallations extends 
InstallationResources implem
 
     /**
      * Returns the URL from where to download data for the specified authority.
+     * The URLs are hard-coded and may change in any Apache SIS version.
+     * The default URLs can be overridden using system properties documented 
below:
+     *
+     * <table class="sis">
+     *   <caption>Configuration of download URLs</caption>
+     *   <tr><th>Authority</th>  <th>System property</th></tr>
+     *   <tr><td>EPSG</td>       <td>{@systemProperty 
org.apache.sis.epsg.downloadURL}</td></tr>
+     * </table>
+     *
+     * The use of above-listed system properties is usually not needed,
+     * except as a workaround if a hard-coded URL is no longer accessible.
      */
     private String getDownloadURL(final String authority) {
         switch (authority) {
-            case EPSG: return System.getProperty(DOWNLOAD_PROPERTY, 
DOWNLOAD_URL);
+            case EPSG: return 
System.getProperty("org.apache.sis.epsg.downloadURL", EPSG_DOWNLOAD_URL);
             default: throw unsupported(authority);      // More authorities 
may be added in the future.
         }
     }
diff --git a/pom.xml b/pom.xml
index f53f303336..d5858f3982 100644
--- a/pom.xml
+++ b/pom.xml
@@ -859,6 +859,7 @@
         <artifactId>maven-javadoc-plugin</artifactId>
         <version>3.4.0</version>
         <configuration>
+          <release>17</release>
           <source>${maven.compiler.source}</source>             <!-- Enables 
javadoc to handle language constructs present in target JDK. -->
           <encoding>${project.build.sourceEncoding}</encoding>  <!-- Encoding 
of Java source file. -->
           <docencoding>${website.encoding}</docencoding>        <!-- Encoding 
of the generated HTML files. -->
diff --git 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
index 0e04617154..c309746d33 100644
--- 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
+++ 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/LandsatStoreProvider.java
@@ -20,9 +20,11 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.Files;
 import org.opengis.parameter.ParameterDescriptorGroup;
+import org.apache.sis.storage.Aggregate;
 import org.apache.sis.storage.DataStore;
 import org.apache.sis.storage.DataStoreProvider;
 import org.apache.sis.storage.DataStoreException;
+import org.apache.sis.storage.GridCoverageResource;
 import org.apache.sis.storage.StorageConnector;
 import org.apache.sis.storage.ProbeResult;
 import org.apache.sis.internal.storage.Capability;
@@ -44,8 +46,9 @@ import org.apache.sis.internal.storage.wkt.FirstKeywordPeek;
  * @since   1.1
  * @module
  */
-@StoreMetadata(formatName   = LandsatStoreProvider.NAME,
-               capabilities = Capability.READ)
+@StoreMetadata(formatName    = LandsatStoreProvider.NAME,
+               capabilities  = Capability.READ,
+               resourceTypes = {Aggregate.class, GridCoverageResource.class})
 public class LandsatStoreProvider extends DataStoreProvider {
     /**
      * The format name.
diff --git 
a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStoreProvider.java
 
b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStoreProvider.java
index 5059e7b55b..563f73bd3d 100644
--- 
a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStoreProvider.java
+++ 
b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStoreProvider.java
@@ -20,9 +20,11 @@ import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import org.opengis.parameter.ParameterDescriptorGroup;
 import org.apache.sis.util.Version;
+import org.apache.sis.storage.Aggregate;
 import org.apache.sis.storage.DataStore;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.DataStoreProvider;
+import org.apache.sis.storage.GridCoverageResource;
 import org.apache.sis.storage.ProbeResult;
 import org.apache.sis.storage.StorageConnector;
 import org.apache.sis.internal.storage.StoreMetadata;
@@ -40,16 +42,17 @@ import org.apache.sis.internal.util.Constants;
  * the part of the caller. However the {@link GeoTiffStore} instances created 
by this factory are not thread-safe.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.0
+ * @version 1.2
  *
  * @see GeoTiffStore
  *
  * @since 0.8
  * @module
  */
-@StoreMetadata(formatName   = Constants.GEOTIFF,
-               fileSuffixes = {"tiff", "tif"},
-               capabilities = Capability.READ)
+@StoreMetadata(formatName    = Constants.GEOTIFF,
+               fileSuffixes  = {"tiff", "tif"},
+               capabilities  = Capability.READ,
+               resourceTypes = {Aggregate.class, GridCoverageResource.class})
 public class GeoTiffStoreProvider extends DataStoreProvider {
     /**
      * The MIME type for GeoTIFF files.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/image/WorldFileStoreProvider.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/image/WorldFileStoreProvider.java
index e9c3959cd8..a91f2b5f1e 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/image/WorldFileStoreProvider.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/image/WorldFileStoreProvider.java
@@ -43,7 +43,7 @@ import org.apache.sis.util.ArraysExt;
 @StoreMetadata(formatName    = WorldFileStoreProvider.NAME,
                fileSuffixes  = {"jpeg", "jpg", "png", "gif", "bmp"},    // 
Non-exhaustive list, intentionally excluding TIFF.
                capabilities  = {Capability.READ, Capability.WRITE, 
Capability.CREATE},
-               resourceTypes = GridCoverageResource.class)
+               resourceTypes = {Aggregate.class, GridCoverageResource.class})
 public final class WorldFileStoreProvider extends PRJDataStore.Provider {
     /**
      * The format name.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractGridCoverageResource.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractGridCoverageResource.java
index f188e9fd4f..35950832a0 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractGridCoverageResource.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractGridCoverageResource.java
@@ -185,7 +185,7 @@ public abstract class AbstractGridCoverageResource extends 
AbstractResource impl
      * The log level will be {@link Level#FINE} if the operation was quick 
enough,
      * or {@link PerformanceLevel#SLOW} or higher level otherwise.
      *
-     * @param  file       the file that was opened, or {@code null} for {@link 
#getSourceName()}.
+     * @param  file       the file that was opened, or {@code null} for {@link 
StoreListeners#getSourceName()}.
      * @param  domain     domain of the created grid coverage.
      * @param  startTime  value of {@link System#nanoTime()} when the loading 
process started.
      */
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 0a6daee728..6204dbdbf1 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
@@ -320,13 +320,13 @@ public abstract class DataStoreProvider {
      * @param  <S>        the compile-time type of the {@code type} argument 
(the source or storage type).
      * @param  connector  information about the storage (URL, stream, JDBC 
connection, <i>etc</i>).
      * @param  type       the desired type as one of {@code ByteBuffer}, 
{@code DataInput}, {@code Connection}
-     *                    class or other types documented in {@link 
#getStorageAs(Class)}.
+     *                    class or other {@linkplain 
StorageConnector#getStorageAs(Class) documented types}.
      * @param  prober     the test to apply on the source of the given type.
      * @return the result of executing the probe action with a source of the 
given type,
      *         or {@link ProbeResult#UNSUPPORTED_STORAGE} if the given type is 
supported
      *         but no view can be created for the source given at construction 
time.
      * @throws IllegalArgumentException if the given {@code type} argument is 
not one of the supported types.
-     * @throws IllegalStateException if this {@code StorageConnector} has been 
{@linkplain #closeAllExcept closed}.
+     * @throws IllegalStateException if this {@code StorageConnector} has been 
{@linkplain StorageConnector#closeAllExcept closed}.
      * @throws DataStoreException if an error occurred while opening a stream 
or database connection,
      *         or during the execution of the probe action.
      *

Reply via email to