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 <martin.desruisse...@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. } } }