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

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

commit fc71c638d0fbda405e220c6e6161187224b8315a
Merge: 7cb56fed2e 4a2e1aefb5
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Mon Jun 5 11:03:19 2023 +0200

    Merge branch 'geoapi-3.1'.

 .../org/apache/sis/coverage/SampleDimension.java   |  7 +++++
 .../sis/internal/coverage/SampleDimensions.java    |  6 ++--
 .../java/org/apache/sis/coverage/CategoryTest.java |  3 +-
 .../apache/sis/coverage/SampleDimensionTest.java   |  3 +-
 .../org/apache/sis/image/ResamplingGridTest.java   |  3 +-
 .../sis/internal/feature/j2d/FactoryTest.java      |  2 +-
 .../internal/feature/jts/ShapeConverterTest.java   |  3 +-
 .../sis/internal/filter/sqlmm/SQLMMTest.java       |  3 +-
 .../apache/sis/test/feature/FeatureComparator.java |  3 +-
 .../{test => xml}/DocumentComparatorTest.java      |  2 +-
 .../java/org/apache/sis/metadata/ValueMapTest.java |  3 +-
 .../iso/lineage/DefaultProcessStepTest.java        |  3 +-
 .../quality/AbstractPositionalAccuracyTest.java    |  3 +-
 .../apache/sis/test/xml/DocumentComparator.java    |  3 +-
 .../java/org/apache/sis/util/iso/TypesTest.java    |  3 +-
 .../org/apache/sis/geometry/AbstractEnvelope.java  | 21 ++++++++++++-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    | 18 ++++++++----
 .../sis/referencing/cs/CoordinateSystems.java      |  4 +--
 .../sis/referencing/cs/DefaultSphericalCS.java     | 32 ++++++++++++++++++--
 .../referencing/factory/GeodeticObjectFactory.java | 34 ++++++++++++++++++++++
 .../referencing/factory/sql/EPSGDataAccess.java    |  5 ++++
 .../operation/projection/AzimuthalEquidistant.java |  2 +-
 .../operation/projection/Initializer.java          |  6 ++--
 .../referencing/operation/projection/Mercator.java |  7 +++--
 .../operation/projection/NormalizedProjection.java | 11 ++++---
 .../operation/projection/ProjectionVariant.java    |  6 ++++
 .../org/apache/sis/geometry/ArrayEnvelopeTest.java | 15 ++++++++--
 .../referencing/j2d/AbstractShapeTest.java         |  2 +-
 .../referencing/j2d/ShapeUtilitiesTest.java        |  3 +-
 .../provider/DatumShiftGridCompressedTest.java     |  2 +-
 .../FranceGeocentricInterpolationTest.java         |  3 +-
 .../provider/GeocentricTranslationTest.java        |  3 +-
 .../sis/referencing/GeodeticCalculatorTest.java    |  4 ++-
 .../sis/referencing/StandardDefinitionsTest.java   |  3 +-
 .../sis/referencing/factory/TestFactorySource.java |  3 +-
 .../operation/projection/InitializerTest.java      |  2 +-
 .../operation/projection/MercatorTest.java         |  3 +-
 .../transform/LinearInterpolator1DTest.java        |  3 +-
 .../operation/transform/LinearTransformTest.java   |  2 +-
 .../operation/transform/MathTransformTestCase.java |  3 +-
 .../operation/transform/ScaleTransformTest.java    |  3 +-
 .../integration/CoordinateReferenceSystemTest.java |  3 +-
 .../java/org/apache/sis/measure/NumberRange.java   |  4 +--
 .../test/java/org/apache/sis/math/VectorTest.java  |  3 +-
 .../org/apache/sis/measure/QuantitiesTest.java     |  3 +-
 .../sis/profile/france/FrenchProfileTest.java      |  3 +-
 .../sis/internal/geotiff/SchemaModifier.java       |  2 +-
 .../org/apache/sis/storage/geotiff/CRSBuilder.java | 16 +++++-----
 .../sis/storage/geotiff/CompressedSubset.java      |  4 +--
 .../org/apache/sis/storage/geotiff/DataCube.java   | 18 ++++++++++++
 .../org/apache/sis/storage/geotiff/DataSubset.java | 33 ++++++++++++++++++++-
 .../sis/storage/geotiff/ImageFileDirectory.java    | 13 +++++++--
 .../org/apache/sis/internal/netcdf/CRSBuilder.java | 13 +++++++--
 .../apache/sis/internal/netcdf/VariableTest.java   |  2 +-
 .../storage/netcdf/NetcdfStoreProviderTest.java    |  3 +-
 .../apache/sis/storage/netcdf/NetcdfStoreTest.java |  2 +-
 .../sis/internal/sql/postgis/PostgresTest.java     |  3 +-
 .../sis/internal/storage/esri/RasterStore.java     |  5 ++--
 .../apache/sis/internal/storage/xml/StoreTest.java |  3 +-
 .../apache/sis/storage/StorageConnectorTest.java   |  3 +-
 60 files changed, 303 insertions(+), 83 deletions(-)

diff --cc 
core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/SQLMMTest.java
index 8c7e96b2f4,91d36f196c..4ab04c2ab7
--- 
a/core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/SQLMMTest.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/SQLMMTest.java
@@@ -29,11 -28,14 +29,12 @@@ import org.apache.sis.referencing.Commo
  import org.apache.sis.test.TestCase;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  // Branch-dependent imports
 -import org.opengis.filter.Literal;
 -import org.opengis.feature.Feature;
 -import org.opengis.filter.Expression;
 -import org.opengis.filter.FilterFactory;
 +import org.apache.sis.feature.AbstractFeature;
 +import org.apache.sis.filter.Expression;
  
  
  /**
diff --cc 
core/sis-feature/src/test/java/org/apache/sis/test/feature/FeatureComparator.java
index 339aeec378,e5c5151828..627c1c88cc
--- 
a/core/sis-feature/src/test/java/org/apache/sis/test/feature/FeatureComparator.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/test/feature/FeatureComparator.java
@@@ -31,15 -31,17 +31,16 @@@ import org.apache.sis.internal.util.Col
  import org.apache.sis.util.ArgumentChecks;
  import org.apache.sis.util.Deprecable;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  // Branch-dependent imports
 -import org.opengis.feature.Feature;
 -import org.opengis.feature.FeatureType;
 -import org.opengis.feature.FeatureAssociationRole;
 -import org.opengis.feature.PropertyType;
 -import org.opengis.feature.AttributeType;
 -import org.opengis.feature.IdentifiedType;
 -import org.opengis.feature.Operation;
 +import org.apache.sis.feature.AbstractFeature;
 +import org.apache.sis.feature.DefaultFeatureType;
 +import org.apache.sis.feature.DefaultAssociationRole;
 +import org.apache.sis.feature.DefaultAttributeType;
 +import org.apache.sis.feature.AbstractIdentifiedType;
 +import org.apache.sis.feature.AbstractOperation;
  
  
  /**
diff --cc core/sis-metadata/src/test/java/org/apache/sis/util/iso/TypesTest.java
index 0a4a2de38c,da06d0ef0e..b1290f619a
--- a/core/sis-metadata/src/test/java/org/apache/sis/util/iso/TypesTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/util/iso/TypesTest.java
@@@ -36,11 -37,9 +36,12 @@@ import org.apache.sis.util.DefaultInter
  import org.apache.sis.test.TestCase;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
 +// Branch-dependent imports
 +import static org.apache.sis.test.GeoapiAssert.PENDING_NEXT_GEOAPI_RELEASE;
 +
  
  /**
   * Tests the {@link Types} class.
diff --cc 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
index 2bb244c086,9ed19d4ffb..010a5b55ee
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
@@@ -92,6 -91,6 +92,7 @@@ import static java.util.Collections.sin
  
  // Branch-dependent imports
  import org.opengis.referencing.ReferenceIdentifier;
++import org.apache.sis.referencing.factory.GeodeticObjectFactory;
  
  
  /**
@@@ -931,6 -930,14 +932,17 @@@ class GeodeticObjectParser extends Math
                  dimension = (axes.length < 2) ? 2 : 3;                      
// For error message.
                  break;
              }
+             case WKTKeywords.spherical: {
+                 switch (axes.length) {
 -                    case 2: return csFactory.createSphericalCS(csProperties, 
axes[0], axes[1]);
++                    case 2: if (csFactory instanceof GeodeticObjectFactory) {
++                                return ((GeodeticObjectFactory) 
csFactory).createSphericalCS(csProperties, axes[0], axes[1]);
++                            }
++                            break;
+                     case 3: return csFactory.createSphericalCS(csProperties, 
axes[0], axes[1], axes[2]);
+                 }
+                 dimension = (axes.length < 2) ? 2 : 3;                      
// For error message.
+                 break;
+             }
              case WKTKeywords.Cartesian: {
                  switch (axes.length) {
                      case 2: return csFactory.createCartesianCS(csProperties, 
axes[0], axes[1]);
@@@ -967,13 -974,9 +979,9 @@@
                  if (axes.length != (dimension = 3)) break;
                  return csFactory.createCylindricalCS(csProperties, axes[0], 
axes[1], axes[2]);
              }
-             case WKTKeywords.spherical: {
-                 if (axes.length != (dimension = 3)) break;
-                 return csFactory.createSphericalCS(csProperties, axes[0], 
axes[1], axes[2]);
-             }
              case WKTKeywords.parametric: {
                  if (axes.length != (dimension = 1)) break;
 -                return csFactory.createParametricCS(csProperties, axes[0]);
 +                return ServicesForMetadata.createParametricCS(csProperties, 
axes[0], csFactory);
              }
              default: {
                  warning(parent, WKTKeywords.CS, 
Errors.formatInternational(Errors.Keys.UnknownType_1, type), null);
diff --cc 
core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
index fa93328a32,f53cf7812e..201310557c
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
@@@ -479,6 -479,41 +479,40 @@@ public class GeodeticObjectFactory exte
          return unique("createSphericalCS", cs);
      }
  
+     /**
+      * Creates a spherical coordinate system without radius.
+      * This coordinate system can be used with geocentric, engineering and 
derived CRS.
+      *
+      * <h4>Dependencies</h4>
+      * The components needed by this method can be created by the following 
methods:
+      * <ol>
+      *   <li>{@link #createCoordinateSystemAxis(Map, String, AxisDirection, 
Unit)}</li>
+      * </ol>
+      *
+      * The default implementation creates a {@link DefaultSphericalCS} 
instance.
+      *
+      * @param  properties  name and other properties to give to the new 
object.
+      * @param  axis0       the first  axis (e.g. “Spherical latitude”).
+      * @param  axis1       the second axis (e.g. “Spherical longitude”).
+      * @throws FactoryException if the object creation failed.
+      *
+      * @see DefaultSphericalCS#DefaultSphericalCS(Map, CoordinateSystemAxis, 
CoordinateSystemAxis)
+      *
+      * @since 1.4
+      */
 -    @Override
+     public SphericalCS createSphericalCS(final Map<String,?> properties,
+             final CoordinateSystemAxis axis0,
+             final CoordinateSystemAxis axis1) throws FactoryException
+     {
+         final DefaultSphericalCS cs;
+         try {
+             cs = new DefaultSphericalCS(complete(properties), axis0, axis1);
+         } catch (IllegalArgumentException exception) {
+             throw new InvalidGeodeticParameterException(exception);
+         }
+         return unique("createSphericalCS", cs);
+     }
+ 
      /**
       * Creates a geographic coordinate reference system. It can be 
(<var>latitude</var>, <var>longitude</var>)
       * or (<var>longitude</var>, <var>latitude</var>), optionally with an 
ellipsoidal height.
diff --cc 
core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
index 7ecabe99d0,5f0eb61e0e..3a41de5541
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
@@@ -122,11 -123,6 +122,12 @@@ import static org.apache.sis.util.Utili
  import static org.apache.sis.internal.util.StandardDateFormat.UTC;
  import static 
org.apache.sis.internal.referencing.ServicesForMetadata.CONNECTION;
  
 +// Branch-dependent imports
 +import org.apache.sis.referencing.cs.DefaultParametricCS;
 +import org.apache.sis.referencing.datum.DefaultParametricDatum;
 +import org.apache.sis.internal.referencing.ServicesForMetadata;
++import org.apache.sis.referencing.factory.GeodeticObjectFactory;
 +
  
  /**
   * <cite>Data Access Object</cite> (DAO) creating geodetic objects from a 
JDBC connection to an EPSG database.
@@@ -2201,6 -2197,7 +2202,10 @@@ codes:  for (int i=0; i<codes.length; i
                      }
                      case WKTKeywords.spherical: {
                          switch (dimension) {
 -                            case 2: cs = 
csFactory.createSphericalCS(properties, axes[0], axes[1]); break;
++                            case 2: if (csFactory instanceof 
GeodeticObjectFactory) {
++                                        cs = ((GeodeticObjectFactory) 
csFactory).createSphericalCS(properties, axes[0], axes[1]);
++                                    }
++                                    break;
                              case 3: cs = 
csFactory.createSphericalCS(properties, axes[0], axes[1], axes[2]); break;
                          }
                          break;
diff --cc 
core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticCalculatorTest.java
index c29e9c163c,b7e81bbe91..5895abfc8b
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticCalculatorTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticCalculatorTest.java
@@@ -46,7 -47,10 +46,9 @@@ import net.sf.geographiclib.GeodesicDat
  import org.junit.Test;
  
  import static java.lang.StrictMath.*;
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertBetween;
+ import static org.opengis.test.Assert.assertInstanceOf;
 -import static org.opengis.test.Assert.assertAxisDirectionsEqual;
  import static 
org.apache.sis.internal.metadata.ReferencingServices.AUTHALIC_RADIUS;
  
  
diff --cc 
core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
index 5bb4ed40d8,6b54409d30..eb4fd775db
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
@@@ -35,13 -37,10 +35,14 @@@ import org.junit.Test
  
  import static java.lang.Double.*;
  import static java.lang.StrictMath.*;
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertBetween;
  import static 
org.apache.sis.referencing.operation.projection.ConformalProjectionTest.LN_INFINITY;
  
 +// Branch-specific imports
 +import static org.junit.Assume.assumeTrue;
 +import static org.apache.sis.test.GeoapiAssert.PENDING_NEXT_GEOAPI_RELEASE;
 +
  
  /**
   * Tests the {@link Mercator} projection.
diff --cc 
core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearTransformTest.java
index a9ccc1f8e2,c458838d25..2422748819
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearTransformTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearTransformTest.java
@@@ -26,11 -26,8 +26,11 @@@ import org.junit.Test
  import org.junit.runner.RunWith;
  import org.apache.sis.test.DependsOn;
  import org.apache.sis.test.TestRunner;
- import static org.opengis.test.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
 +// Branch-dependent imports
 +import org.junit.Ignore;
 +
  
  /**
   * Tests various implementation of the {@link LinearTransform} interface by 
inheriting the tests defined
diff --cc 
core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformTestCase.java
index 71a6d2a63e,e49512b43e..dae7791920
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformTestCase.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/MathTransformTestCase.java
@@@ -40,8 -43,13 +40,9 @@@ import org.opengis.test.Validators
  import org.apache.sis.test.TestUtilities;
  import org.apache.sis.referencing.Assertions;
  import org.apache.sis.referencing.operation.matrix.MatrixTestCase;
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
 -// Branch-dependent imports
 -import org.opengis.test.CalculationType;
 -
  
  /**
   * Base class for tests of {@link AbstractMathTransform} implementations.
diff --cc 
core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ScaleTransformTest.java
index 3c3099ac49,afa9d5c7f6..96e9aa5f13
--- 
a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ScaleTransformTest.java
+++ 
b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/ScaleTransformTest.java
@@@ -24,10 -24,11 +24,11 @@@ import org.apache.sis.internal.util.Dou
  
  import org.apache.sis.test.DependsOnMethod;
  import org.apache.sis.test.DependsOn;
 -import org.opengis.test.Assert;
 +import static org.apache.sis.test.GeoapiAssert.assertMatrixEquals;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  
  /**
diff --cc 
storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
index 4a2f5cb5ab,97d0ca7164..43ba5eaa80
--- 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
+++ 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
@@@ -60,9 -60,6 +60,10 @@@ import org.apache.sis.util.ArraysExt
  import org.apache.sis.measure.NumberRange;
  import org.apache.sis.measure.Units;
  
 +// Branch-dependent imports
++import org.apache.sis.referencing.factory.GeodeticObjectFactory;
 +import org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory;
 +
  
  /**
   * Temporary object for building a coordinate reference system from the 
variables in a netCDF file.
@@@ -685,7 -682,11 +686,13 @@@ previous:   for (int i=components.size(
           * found that the {@link #coordinateSystem} does not have compatible 
axes.
           */
          @Override void createCS(CSFactory factory, Map<String,?> properties, 
CoordinateSystemAxis[] axes) throws FactoryException {
-             coordinateSystem = factory.createSphericalCS(properties, axes[0], 
axes[1], axes[2]);
+             if (axes.length > 2) {
+                 coordinateSystem = factory.createSphericalCS(properties, 
axes[0], axes[1], axes[2]);
++            } else if (factory instanceof GeodeticObjectFactory) {
++                coordinateSystem = ((GeodeticObjectFactory) 
factory).createSphericalCS(properties, axes[0], axes[1]);
+             } else {
 -                coordinateSystem = factory.createSphericalCS(properties, 
axes[0], axes[1]);
++                throw new FactoryException("Unsupported factory 
implementation.");
+             }
          }
  
          /**
diff --cc 
storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java
index 8f2a85cd6d,6c25c83c9a..e0cfb48ba9
--- 
a/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java
+++ 
b/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/VariableTest.java
@@@ -26,9 -26,10 +26,9 @@@ import org.apache.sis.storage.DataStore
  import org.apache.sis.internal.netcdf.ucar.DecoderWrapper;
  import org.apache.sis.measure.Units;
  import org.apache.sis.test.DependsOn;
 -import org.opengis.test.dataset.TestData;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
  
  
  /**
diff --cc 
storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
index 986fefab29,ab496dd799..ad0f0f9716
--- 
a/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
+++ 
b/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreProviderTest.java
@@@ -29,10 -29,11 +29,11 @@@ import org.apache.sis.storage.DataStore
  import org.apache.sis.storage.DataStoreMock;
  import org.apache.sis.util.Version;
  import org.apache.sis.test.DependsOn;
 -import org.opengis.test.dataset.TestData;
 +import org.apache.sis.internal.netcdf.TestData;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
+ import static org.opengis.test.Assert.assertInstanceOf;
  
  
  /**
diff --cc 
storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
index 258e676dad,e2c6a78c75..f2283edb46
--- 
a/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
+++ 
b/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/NetcdfStoreTest.java
@@@ -22,10 -22,10 +22,10 @@@ import org.apache.sis.storage.DataStore
  import org.apache.sis.test.TestCase;
  import org.apache.sis.test.DependsOn;
  import org.apache.sis.util.Version;
 -import org.opengis.test.dataset.TestData;
 +import org.apache.sis.internal.netcdf.TestData;
  import org.junit.Test;
  
- import static org.opengis.test.Assert.*;
+ import static org.junit.Assert.*;
  
  
  /**

Reply via email to