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 2022/12/02 14:07:51 UTC

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

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 ea85b9b19dca275f7141b7b5f82ba585067bf89c
Merge: 1a8e38fd88 92a8dad131
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Dec 2 15:07:35 2022 +0100

    Merge branch 'geoapi-3.1'

 application/sis-console/pom.xml                    |  23 ---
 application/sis-console/src/main/artifact/LICENSE  |   1 -
 application/sis-console/src/main/artifact/NOTICE   |   1 -
 application/sis-console/src/main/artifact/README   |  98 -------------
 .../src/main/artifact/conf/logging.properties      |  63 --------
 .../sis-console/src/main/artifact/data/README      |  10 --
 .../sis-console/src/main/artifact/lib/README       |   8 --
 .../sis-console/src/main/artifact/log/README       |   1 -
 application/sis-javafx/src/main/artifact/README    |   4 +-
 .../src/main/artifact/bin/sis                      |   4 +-
 .../src/main/artifact/bin/{sisfx.bat => sis.bat}   |  21 +--
 application/sis-javafx/src/main/artifact/bin/sisfx |   2 +-
 .../sis-javafx/src/main/artifact/bin/sisfx.bat     |   2 +-
 .../src/main/artifact/conf/logging.properties      |   7 +-
 .../sis-javafx/src/main/artifact/data/README       |  11 +-
 .../sis-javafx/src/main/artifact/log/README        |   2 +-
 .../org/apache/sis/internal/setup/FXFinder.java    |  29 ++--
 .../sis/internal/setup/LoggingConfiguration.java   |  94 ------------
 .../apache/sis/internal/setup/package-info.java    |   2 +-
 application/sis-openoffice/pom.xml                 |   2 +-
 .../sis/openoffice/ReferencingFunctionsTest.java   |   6 +-
 cloud/sis-cloud-aws/pom.xml                        |   2 +-
 core/sis-build-helper/pom.xml                      |   7 +-
 .../org/apache/sis/internal/maven/Assembler.java   |   8 +-
 .../java/org/apache/sis/image/BandedIterator.java  |  12 +-
 .../java/org/apache/sis/image/PixelIterator.java   |   8 +-
 .../apache/sis/image/WritablePixelIterator.java    |   6 +-
 .../apache/sis/internal/jaxb/gco/GO_DateTime.java  |   7 +-
 .../gco/{GO_DateTime.java => GO_Temporal.java}     |  61 ++++----
 .../internal/metadata/legacy/DateToTemporal.java   |  87 +++++++++++
 .../internal/metadata/legacy/TemporalToDate.java   |  94 ++++++++++++
 .../org/apache/sis/internal/xml/XmlUtilities.java  | 143 +++++++++++++++++-
 .../org/apache/sis/internal/xml/package-info.java  |   2 +-
 .../sis/metadata/iso/quality/AbstractElement.java  |  24 ++--
 .../sis/metadata/iso/quality/AbstractResult.java   |  28 ++--
 .../iso/quality/DefaultEvaluationMethod.java       |  78 +++++-----
 .../sis/metadata/iso/quality/package-info.java     |   1 +
 .../apache/sis/internal/xml/XmlUtilitiesTest.java  |  67 ++++++++-
 .../metadata/iso/quality/AbstractElementTest.java  |  96 +++----------
 ...tTest.java => DefaultEvaluationMethodTest.java} |  24 ++--
 .../apache/sis/test/suite/MetadataTestSuite.java   |   1 +
 .../apache/sis/internal/referencing/Resources.java |   6 +
 .../sis/internal/referencing/Resources.properties  |   1 +
 .../internal/referencing/Resources_fr.properties   |   1 +
 .../main/java/org/apache/sis/referencing/CRS.java  |  20 ++-
 .../java/org/apache/sis/referencing/CommonCRS.java | 160 ++++++++++-----------
 .../sis/referencing/EPSGFactoryFallback.java       |  41 +++---
 .../apache/sis/referencing/IdentifiedObjects.java  |  16 ++-
 .../sis/referencing/StandardDefinitions.java       | 100 +++++++++----
 .../org/apache/sis/referencing/package-info.java   |   2 +-
 .../sis/referencing/StandardDefinitionsTest.java   |   2 +-
 .../apache/sis/internal/system/package-info.java   |   2 +-
 .../org/apache/sis/util/logging/Initializer.java   | 133 +++++++++++++++++
 pom.xml                                            |   2 +-
 54 files changed, 933 insertions(+), 700 deletions(-)

diff --cc application/sis-javafx/src/main/artifact/bin/sis
index 35a0e94b78,3bd0f8e21f..db782c2b47
--- a/application/sis-javafx/src/main/artifact/bin/sis
+++ b/application/sis-javafx/src/main/artifact/bin/sis
@@@ -24,7 -23,8 +23,8 @@@ SIS_DATA="${SIS_DATA:-$BASE_DIR/data}
  export SIS_DATA
  
  # Execute SIS with any optional JAR that the user may put in the 'lib' directory.
 -java -classpath "$BASE_DIR/lib/sis-console-1.x-SNAPSHOT.jar" \
 +java -classpath "$BASE_DIR/lib/sis-console-1.3-SNAPSHOT.jar" \
+      -Djava.util.logging.config.class="org.apache.sis.util.logging.Initializer" \
       -Djava.util.logging.config.file="$BASE_DIR/conf/logging.properties" \
       -Dderby.stream.error.file="$BASE_DIR/log/derby.log" \
       org.apache.sis.console.Command $SIS_OPTS "$@"
diff --cc application/sis-javafx/src/main/artifact/bin/sis.bat
index 4eda2229d1,6d5ddfcda6..7f46cdc8c0
--- a/application/sis-javafx/src/main/artifact/bin/sis.bat
+++ b/application/sis-javafx/src/main/artifact/bin/sis.bat
@@@ -17,20 -17,11 +17,11 @@@ REM limitations under the License
  
  
  SET BASE_DIR=%~dp0\..
- CALL "%BASE_DIR%\conf\setenv.bat"
  SET SIS_DATA=%BASE_DIR%\data
  
- IF "%PATH_TO_FX%"=="" (
-     java --class-path "%BASE_DIR%\lib\*" org.apache.sis.internal.setup.FXFinder "%BASE_DIR%\conf\setenv.bat"
-     IF %ERRORLEVEL% GEQ 1 EXIT /B 1
-     CALL "%BASE_DIR%\conf\setenv.bat"
- )
- 
- java -splash:"%BASE_DIR%\lib\logo.jpg"^
-  --add-modules javafx.graphics,javafx.controls,javafx.web^
-  --module-path "%PATH_TO_FX%"^
-  --class-path "%BASE_DIR%\lib\sis-javafx-1.3-SNAPSHOT.jar"^
-  -Djava.util.logging.config.class=org.apache.sis.internal.setup.LoggingConfiguration^
-  -Djava.util.logging.config.file="%BASE_DIR%\conf\logging.properties"^
-  -Dderby.stream.error.file="%BASE_DIR%\log\derby.log"^
-  org.apache.sis.gui.DataViewer %SIS_OPTS%
+ REM Execute SIS with any optional JAR that the user may put in the 'lib' directory.
 -java -classpath "%BASE_DIR%\lib\sis-console-1.x-SNAPSHOT.jar"^
++java -classpath "%BASE_DIR%\lib\sis-console-1.3-SNAPSHOT.jar"^
+      -Djava.util.logging.config.class=org.apache.sis.util.logging.Initializer^
+      -Djava.util.logging.config.file="%BASE_DIR%\conf\logging.properties"^
+      -Dderby.stream.error.file="%BASE_DIR%\log\derby.log"^
+      org.apache.sis.console.Command %SIS_OPTS% %*
diff --cc application/sis-javafx/src/main/artifact/bin/sisfx
index 05e88ca51c,c6d8e55b2d..3d8af4eaa9
--- a/application/sis-javafx/src/main/artifact/bin/sisfx
+++ b/application/sis-javafx/src/main/artifact/bin/sisfx
@@@ -38,8 -38,8 +38,8 @@@ f
  java -splash:"$BASE_DIR/lib/logo.jpg" \
       --add-modules javafx.graphics,javafx.controls,javafx.web \
       --module-path "$PATH_TO_FX" \
 -     --class-path "$BASE_DIR/lib/sis-javafx-1.x-SNAPSHOT.jar" \
 +     --class-path "$BASE_DIR/lib/sis-javafx-1.3-SNAPSHOT.jar" \
-      -Djava.util.logging.config.class="org.apache.sis.internal.setup.LoggingConfiguration" \
+      -Djava.util.logging.config.class="org.apache.sis.util.logging.Initializer" \
       -Djava.util.logging.config.file="$BASE_DIR/conf/logging.properties" \
       -Dderby.stream.error.file="$BASE_DIR/log/derby.log" \
       org.apache.sis.gui.DataViewer $SIS_OPTS "$@"
diff --cc application/sis-javafx/src/main/artifact/bin/sisfx.bat
index 4eda2229d1,1981212bc8..73b13abb1d
--- a/application/sis-javafx/src/main/artifact/bin/sisfx.bat
+++ b/application/sis-javafx/src/main/artifact/bin/sisfx.bat
@@@ -29,8 -29,8 +29,8 @@@ IF "%PATH_TO_FX%"=="" 
  java -splash:"%BASE_DIR%\lib\logo.jpg"^
   --add-modules javafx.graphics,javafx.controls,javafx.web^
   --module-path "%PATH_TO_FX%"^
 - --class-path "%BASE_DIR%\lib\sis-javafx-1.x-SNAPSHOT.jar"^
 + --class-path "%BASE_DIR%\lib\sis-javafx-1.3-SNAPSHOT.jar"^
-  -Djava.util.logging.config.class=org.apache.sis.internal.setup.LoggingConfiguration^
+  -Djava.util.logging.config.class=org.apache.sis.util.logging.Initializer^
   -Djava.util.logging.config.file="%BASE_DIR%\conf\logging.properties"^
   -Dderby.stream.error.file="%BASE_DIR%\log\derby.log"^
   org.apache.sis.gui.DataViewer %SIS_OPTS%
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
index 3f45c53be0,8a04d3dbb7..bc69208f3c
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
@@@ -544,17 -550,18 +547,18 @@@ public class AbstractElement extends IS
      @Dependencies("getEvaluationMethod")
      @XmlElement(name = "dateTime", namespace = LegacyNamespaces.GMD)
      public Collection<Date> getDates() {
-         if (!FilterByVersion.LEGACY_METADATA.accept()) {
-             return null;
-         }
-         DefaultEvaluationMethod m = getEvaluationMethod();
-         if (m == null) {
-             if (state() == State.FINAL) {
-                 return Collections.emptyList();
+         if (FilterByVersion.LEGACY_METADATA.accept()) {
 -            EvaluationMethod m = getEvaluationMethod();
++            DefaultEvaluationMethod m = getEvaluationMethod();
+             if (m == null) {
+                 if (state() == State.FINAL) {
+                     return Collections.emptyList();
+                 }
+                 setEvaluationMethod(m = new DefaultEvaluationMethod());
              }
-             setEvaluationMethod(m = new DefaultEvaluationMethod());
+             Collection<? extends Temporal> dates = m.getDates();
+             if (dates != null) return new TemporalToDate(dates);
          }
-         return m.getDates();
+         return null;
      }
  
      /**
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java
index 1faab5d41c,ab6c9894e0..9d6bf05ca5
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractResult.java
@@@ -26,16 -26,12 +26,15 @@@ import org.opengis.metadata.quality.Res
  import org.opengis.metadata.quality.CoverageResult;
  import org.opengis.metadata.quality.ConformanceResult;
  import org.opengis.metadata.quality.QuantitativeResult;
 -import org.opengis.metadata.quality.DescriptiveResult;
  import org.apache.sis.internal.jaxb.metadata.MD_Scope;
- import org.apache.sis.internal.jaxb.gco.GO_DateTime;
- import org.apache.sis.internal.metadata.ImplementationHelper;
+ import org.apache.sis.internal.jaxb.gco.GO_Temporal;
  
  // Branch-dependent imports
 -import org.opengis.metadata.maintenance.Scope;
 +import org.opengis.metadata.quality.Scope;
 +import org.opengis.annotation.UML;
 +
 +import static org.opengis.annotation.Obligation.OPTIONAL;
 +import static org.opengis.annotation.Specification.UNSPECIFIED;
  
  
  /**
@@@ -103,12 -99,9 +102,10 @@@ public class AbstractResult extends ISO
       */
      public AbstractResult(final Result object) {
          super(object);
 -        if (object != null) {
 -            resultScope = object.getResultScope();
 -            dateTime    = object.getDateTime();
 +        if (object instanceof AbstractResult) {
 +            final AbstractResult impl = (AbstractResult) object;
 +            resultScope = impl.getResultScope();
-             dateTime    = ImplementationHelper.toMilliseconds(impl.getDateTime());
-         } else {
-             dateTime = Long.MIN_VALUE;
++            dateTime    = impl.getDateTime();
          }
      }
  
@@@ -184,11 -183,11 +184,11 @@@
       *
       * @since 1.3
       */
 -    @Override
      @XmlElement(name = "dateTime")
-     @XmlJavaTypeAdapter(GO_DateTime.Since2014.class)
+     @XmlJavaTypeAdapter(GO_Temporal.Since2014.class)
 +    @UML(identifier="dateTime", obligation=OPTIONAL, specification=UNSPECIFIED)
-     public Date getDateTime() {
-         return ImplementationHelper.toDate(dateTime);
+     public Temporal getDateTime() {
+         return dateTime;
      }
  
      /**
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
index 2fd112bdfd,d204673ae5..9344128d56
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultEvaluationMethod.java
@@@ -380,10 -419,10 +384,10 @@@ public class DefaultEvaluationMethod ex
       *
       * @return date or range of dates on which a data quality measure was applied.
       */
 -    @Override
      @XmlElement(name = "dateTime")
 +    @UML(identifier="dateTime", obligation=OPTIONAL, specification=UNSPECIFIED)
      @SuppressWarnings("ReturnOfCollectionOrArrayField")
-     public Collection<Date> getDates() {
+     public Collection<Temporal> getDates() {
          if (Semaphores.query(Semaphores.NULL_COLLECTION)) {
              return isNullOrEmpty(dates) ? null : dates;
          }
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
index 19bf7545e2,8bbaff5a65..18227b4170
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
@@@ -68,7 -68,9 +68,8 @@@
  //  @XmlJavaTypeAdapter(DQM_Measure.class),             // Not directly referenced, but a "weak" association exists.
      @XmlJavaTypeAdapter(DQM_Parameter.class),
      @XmlJavaTypeAdapter(DQM_SourceReference.class),
 -    @XmlJavaTypeAdapter(DQM_ValueStructure.class),
      @XmlJavaTypeAdapter(GO_Boolean.class),
+     @XmlJavaTypeAdapter(GO_Temporal.class),
      @XmlJavaTypeAdapter(GO_DateTime.class),
      @XmlJavaTypeAdapter(GO_GenericName.class),
      @XmlJavaTypeAdapter(GO_Record.class),
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
index 375625096f,fb058662a2..83b6bfba57
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/IdentifiedObjects.java
@@@ -254,10 -256,17 +257,17 @@@ public final class IdentifiedObjects ex
       */
      public static Identifier getIdentifier(final IdentifiedObject object, final Citation authority) {
          if (object != null) {
-             for (final Identifier identifier : nonNull(object.getIdentifiers())) {
+             String cs = null;
+             if (authority instanceof IdentifierSpace<?>) {
+                 cs = ((IdentifierSpace<?>) authority).getName();
+             }
 -            for (final Identifier identifier : nonNull(object.getIdentifiers())) {
++            for (final ReferenceIdentifier identifier : nonNull(object.getIdentifiers())) {
                  if (identifier != null) {                       // Paranoiac check.
+                     if (cs != null && cs.equalsIgnoreCase(identifier.getCodeSpace())) {
+                         return identifier;      // Match based on codespace.
+                     }
                      if (authority == null || Citations.identifierMatches(authority, identifier.getAuthority())) {
-                         return identifier;
+                         return identifier;      // Match based on citation.
                      }
                  }
              }