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 a56028b94c7dadf011fad9eaa4a3ed6ccc36bfa4 Merge: 4863545 e495c9f Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Sun Sep 19 19:03:23 2021 +0200 Merge branch 'geoapi-3.1' application/sis-console/pom.xml | 6 - .../apache/sis/gui/dataset/ResourceExplorer.java | 8 +- .../org/apache/sis/internal/setup/FXFinder.java | 2 +- application/sis-openoffice/pom.xml | 33 +- .../src/main/unopkg/build-instruction.html | 18 +- .../sis-openoffice/src/main/unopkg/license.txt | 21 +- .../java/org/apache/sis/image/Interpolation.java | 8 +- .../org/apache/sis/image/LanczosInterpolation.java | 94 ++- .../internal/coverage/j2d/ColorModelFactory.java | 7 + .../apache/sis/internal/feature/Geometries.java | 4 +- .../apache/sis/internal/feature/GeometryType.java | 11 + .../apache/sis/internal/feature/esri/Factory.java | 97 ++- .../apache/sis/internal/feature/esri/Wrapper.java | 78 +- .../apache/sis/internal/feature/j2d/Factory.java | 64 ++ .../sis/internal/feature/j2d/PointWrapper.java | 117 ++- .../apache/sis/internal/feature/j2d/Wrapper.java | 199 ++++- .../sis/internal/filter/GeometryConverter.java | 2 +- .../org/apache/sis/feature/CustomAttribute.java | 2 +- .../org/apache/sis/feature/FeatureTestCase.java | 2 +- .../builder/AssociationRoleBuilderTest.java | 2 +- .../BinarySpatialFilterUsingESRI_Test.java} | 39 +- .../BinarySpatialFilterUsingJava2D_Test.java | 102 +++ .../org/apache/sis/image/InterpolationTest.java | 22 +- .../internal/filter/sqlmm/RegistryTestCase.java | 27 +- ...ngJTS_Test.java => RegistryUsingESRI_Test.java} | 46 +- .../filter/sqlmm/RegistryUsingJTS_Test.java | 2 +- .../filter/sqlmm/RegistryUsingJava2D_Test.java | 82 ++ .../apache/sis/test/suite/FeatureTestSuite.java | 4 + .../apache/sis/internal/jaxb/cat/CodeListUID.java | 2 +- .../jaxb/gco/InternationalStringAdapter.java | 2 +- .../jaxb/gco/InternationalStringConverter.java | 2 +- .../apache/sis/internal/jaxb/gco/PropertyType.java | 5 +- .../sis/internal/jaxb/gts/TM_PeriodDuration.java | 2 +- .../apache/sis/internal/jaxb/lan/PT_FreeText.java | 4 +- .../sis/internal/jaxb/metadata/MD_Scope.java | 16 + .../apache/sis/internal/simple/SimpleCitation.java | 2 +- .../apache/sis/metadata/iso/DefaultMetadata.java | 2 +- .../sis/metadata/iso/quality/DefaultScope.java | 2 +- .../sis/metadata/iso/quality/package-info.java | 2 +- .../java/org/apache/sis/util/iso/AbstractName.java | 3 +- .../org/apache/sis/util/iso/DefaultLocalName.java | 3 +- .../apache/sis/util/iso/DefaultNameFactory.java | 2 + .../org/apache/sis/util/iso/DefaultNameSpace.java | 1 + .../main/java/org/apache/sis/util/iso/Types.java | 34 +- .../java/org/apache/sis/util/iso/package-info.java | 9 - .../java/org/apache/sis/xml/MarshalContext.java | 2 +- .../java/org/apache/sis/xml/TransformVersion.java | 2 +- .../java/org/apache/sis/xml/TransformedEvent.java | 1 + .../main/java/org/apache/sis/xml/Transformer.java | 92 ++- .../org/apache/sis/xml/TransformingNamespaces.java | 4 +- .../org/apache/sis/xml/TransformingReader.java | 4 +- .../org/apache/sis/xml/TransformingWriter.java | 34 +- .../src/main/java/org/apache/sis/xml/XML.java | 2 +- .../src/main/java/org/apache/sis/xml/readme.html | 21 +- .../org/apache/sis/xml/RenameOnExport.lst | 4 +- .../org/apache/sis/xml/RenameOnImport.lst | 2 +- .../sis/internal/jaxb/gco/PropertyTypeTest.java | 2 +- .../sis/internal/jaxb/gco/StringAdapterTest.java | 4 +- .../internal/jaxb/lan/FreeTextMarshallingTest.java | 2 +- .../java/org/apache/sis/metadata/HashCodeTest.java | 2 +- .../apache/sis/metadata/MetadataStandardTest.java | 2 +- .../sis/metadata/ModifiableMetadataTest.java | 2 +- .../apache/sis/metadata/PropertyAccessorTest.java | 2 +- .../apache/sis/metadata/TreeNodeChildrenTest.java | 2 +- .../apache/sis/metadata/TreeTableFormatTest.java | 2 +- .../java/org/apache/sis/metadata/ValueMapTest.java | 2 +- .../sis/metadata/iso/CustomMetadataTest.java | 2 +- .../sis/metadata/iso/DefaultMetadataTest.java | 2 +- .../metadata/iso/citation/DefaultCitationTest.java | 4 +- .../metadata/iso/citation/HardCodedCitations.java | 2 +- .../sis/metadata/iso/extent/DefaultExtentTest.java | 2 +- .../iso/identification/DefaultKeywordsTest.java | 2 +- .../metadata/iso/lineage/DefaultLineageTest.java | 2 +- .../iso/lineage/DefaultProcessStepTest.java | 2 +- .../sis/metadata/iso/quality/ScopeCodeTest.java | 79 ++ .../iso/spatial/DefaultGeorectifiedTest.java | 2 +- .../sis/metadata/sql/MetadataSourceTest.java | 2 +- .../apache/sis/test/suite/MetadataTestSuite.java | 3 +- .../sis/util/iso/DefaultNameFactoryTest.java | 1 + .../apache/sis/util/iso/DefaultScopedNameTest.java | 1 + .../java/org/apache/sis/util/iso/TypesTest.java | 2 + .../org/apache/sis/xml/XLinkMarshallingTest.java | 2 +- .../test/java/org/apache/sis/xml/XLinkTest.java | 2 +- .../internal/referencing/CoordinateOperations.java | 2 +- .../internal/referencing/ReferencingUtilities.java | 35 + .../internal/referencing/SignReversalComment.java | 2 +- .../referencing/SpecializedOperationFactory.java | 55 -- .../referencing/provider/SatelliteTracking.java | 2 +- .../java/org/apache/sis/io/wkt/WKTDictionary.java | 2 +- .../main/java/org/apache/sis/referencing/CRS.java | 1 - .../factory/CommonAuthorityFactory.java | 2 +- .../factory/GeodeticAuthorityFactory.java | 2 +- .../referencing/factory/sql/EPSGDataAccess.java | 12 +- .../operation/AbstractSingleOperation.java | 19 +- .../operation/CoordinateOperationFinder.java | 19 - .../operation/CoordinateOperationRegistry.java | 9 +- .../referencing/operation/DefaultConversion.java | 8 +- .../DefaultCoordinateOperationFactory.java | 43 +- .../operation/DefaultOperationMethod.java | 2 +- .../projection/ModifiedAzimuthalEquidistant.java | 6 + .../org/apache/sis/io/wkt/ComparisonWithEPSG.java | 31 +- .../sis/referencing/ImmutableIdentifierTest.java | 2 +- .../sis/referencing/NamedIdentifierTest.java | 2 +- .../referencing/factory/AuthorityFactoryMock.java | 2 +- .../apache/sis/test/integration/MetadataTest.java | 2 +- .../sis/internal/converter/StringConverter.java | 2 +- .../org/apache/sis/internal/system/Modules.java | 5 - .../java/org/apache/sis/internal/system/OS.java | 196 ----- .../main/java/org/apache/sis/math/Statistics.java | 2 +- .../java/org/apache/sis/measure/DerivedScalar.java | 15 +- .../java/org/apache/sis/measure/Quantities.java | 25 +- .../main/java/org/apache/sis/measure/Scalar.java | 9 +- .../org/apache/sis/measure/ScalarFallback.java | 6 + .../apache/sis/measure/SexagesimalConverter.java | 2 +- .../java/org/apache/sis/measure/SystemUnit.java | 18 +- .../java/org/apache/sis/measure/UnitServices.java | 39 +- .../main/java/org/apache/sis/setup/OptionKey.java | 2 +- .../{iso => }/AbstractInternationalString.java | 15 +- .../util/{iso => }/DefaultInternationalString.java | 43 +- .../{iso => }/ResourceInternationalString.java | 7 +- .../util/{iso => }/SimpleInternationalString.java | 13 +- .../apache/sis/util/collection/IntegerList.java | 2 +- .../apache/sis/util/collection/TableColumn.java | 2 +- .../apache/sis/util/logging/MonolineFormatter.java | 3 +- .../resources/ResourceInternationalString.java | 4 +- .../apache/sis/util/resources/package-info.java | 2 +- .../internal/converter/StringConverterTest.java | 2 +- .../org/apache/sis/measure/QuantitiesTest.java | 14 + .../sis/measure/SexagesimalConverterTest.java | 2 +- .../org/apache/sis/measure/SystemUnitTest.java | 2 +- .../org/apache/sis/measure/UnitFormatTest.java | 20 +- .../java/org/apache/sis/measure/UnitsTest.java | 36 +- .../apache/sis/test/suite/UtilityTestSuite.java | 4 +- .../org/apache/sis/util/CharSequencesTest.java | 1 - .../{iso => }/DefaultInternationalStringTest.java | 2 +- .../{iso => }/SimpleInternationalStringTest.java | 4 +- .../sis/util/collection/TreeTableFormatTest.java | 2 +- .../apache/sis/util/collection/TreeTablesTest.java | 2 +- ide-project/NetBeans/build.xml | 11 - ide-project/NetBeans/nbproject/build-impl.xml | 56 +- ide-project/NetBeans/nbproject/genfiles.properties | 4 +- ide-project/NetBeans/nbproject/project.properties | 5 +- ide-project/NetBeans/nbproject/project.xml | 3 - storage/pom.xml | 1 - .../sis/storage/earthobservation/LandsatBand.java | 2 +- storage/sis-gdal/pom.xml | 120 --- storage/sis-gdal/src/main/c/Makefile | 77 -- .../src/main/c/org_apache_sis_storage_gdal_PJ.c | 321 -------- .../src/main/c/org_apache_sis_storage_gdal_PJ.h | 85 -- .../internal/storage/gdal/OperationFactory.java | 57 -- .../sis/internal/storage/gdal/package-info.java | 26 - .../main/java/org/apache/sis/storage/gdal/PJ.java | 371 --------- .../java/org/apache/sis/storage/gdal/Proj4.java | 401 ---------- .../org/apache/sis/storage/gdal/Proj4Factory.java | 886 --------------------- .../org/apache/sis/storage/gdal/Proj4Parser.java | 185 ----- .../org/apache/sis/storage/gdal/Transform.java | 247 ------ .../org/apache/sis/storage/gdal/package-info.java | 90 --- ...nternal.referencing.SpecializedOperationFactory | 1 - ...org.opengis.referencing.crs.CRSAuthorityFactory | 1 - .../resources/native/darwin/libproj-binding.so | Bin 14016 -> 0 bytes .../main/resources/native/linux/libproj-binding.so | Bin 13504 -> 0 bytes .../apache/sis/storage/gdal/IntegrationTest.java | 63 -- .../org/apache/sis/storage/gdal/MTFactory.java | 199 ----- .../java/org/apache/sis/storage/gdal/PJTest.java | 181 ----- .../apache/sis/storage/gdal/Proj4FactoryTest.java | 148 ---- .../apache/sis/storage/gdal/Proj4ParserTest.java | 83 -- .../org/apache/sis/storage/gdal/Proj4Test.java | 46 -- .../org/apache/sis/test/suite/GDALTestSuite.java | 49 -- .../sis/internal/storage/AbstractResource.java | 2 +- .../apache/sis/internal/storage/gpx/Metadata.java | 2 +- .../org/apache/sis/internal/storage/gpx/Store.java | 2 +- .../org/apache/sis/internal/storage/gpx/Types.java | 2 +- 172 files changed, 1554 insertions(+), 4430 deletions(-) diff --cc application/sis-openoffice/src/main/unopkg/build-instruction.html index a26b547,0f6af24..1bfbd75 --- a/application/sis-openoffice/src/main/unopkg/build-instruction.html +++ b/application/sis-openoffice/src/main/unopkg/build-instruction.html @@@ -101,9 -98,22 +98,22 @@@ mvn install</pre></blockquote <h2>Test in Apache OpenOffice:</h2> + <p>Launch:</p> <blockquote><pre>cd target -unopkg add apache-sis-1.0-SNAPSHOT.oxt --log-file log.txt +unopkg add apache-sis-1.1-SNAPSHOT.oxt --log-file log.txt - scalc -Xdebug -env:RTL_LOGFILE=log.txt</pre></blockquote> + scalc -env:RTL_LOGFILE=log.txt</pre></blockquote> + + <p>If not already done, configure Java runtime with + <i>Tools</i> → <i>Options…</i> → <i>Advanced</i> → <i>Java options</i> → <i>Parameters</i> + and specify the following parameters: + </p> + <blockquote><pre>-agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=n</pre></blockquote> + + <p> + It allows to attach the IDE debugger to the Java virtual machine running in LibreOffice. + For example with NetBeans, use <i>Debug</i> → <i>Attach debugger…</i>, + select "Socket attach" as the transport and 8000 as the port number. + </p> </body> </html> diff --cc core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PointWrapper.java index d8b8d1a,7c238a7..a51b96b --- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PointWrapper.java +++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PointWrapper.java @@@ -27,7 -31,8 +31,10 @@@ import org.apache.sis.internal.feature. import org.apache.sis.internal.feature.GeometryWrapper; import org.apache.sis.internal.filter.sqlmm.SQLMM; import org.apache.sis.util.Debug; -import org.opengis.filter.SpatialOperatorName; + ++// Branch-dependent imports ++import org.apache.sis.internal.geoapi.filter.SpatialOperatorName; + /** * The wrapper of Java2D points. Has to be provided in a separated class because diff --cc core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java index 4178386,a37af34..99526c6 --- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java +++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java @@@ -34,6 -38,9 +38,9 @@@ import org.apache.sis.internal.jdk9.JDK import org.apache.sis.util.ArraysExt; import org.apache.sis.util.Debug; + // Branch-dependent imports -import org.opengis.filter.SpatialOperatorName; ++import org.apache.sis.internal.geoapi.filter.SpatialOperatorName; + /** * The wrapper of Java2D geometries. diff --cc core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java index 628daf8,cb7da80..9761c88 --- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java +++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java @@@ -137,8 -138,8 +137,8 @@@ final class GeometryConverter<R,G> exte * If we can not do that, check how to propagate the wrap-around policy from some context. * * @param input the geometry to evaluate with this expression. - * @return the geometry boundary. + * @return the geometry wrapper, or {@code null} if the evaluated value is null. - * @throws InvalidFilterValueException if the expression result is not an instance of a supported type. + * @throws IllegalArgumentException if the expression result is not an instance of a supported type. */ @Override public GeometryWrapper<G> apply(final R input) { diff --cc core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/RegistryTestCase.java index 60b7987,d9c3f4f..4ac5134 --- a/core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/RegistryTestCase.java +++ b/core/sis-feature/src/test/java/org/apache/sis/internal/filter/sqlmm/RegistryTestCase.java @@@ -337,9 -354,9 +352,9 @@@ public abstract strictfp class Registry assertEquals(Boolean.FALSE, evaluate("ST_Intersects", point, geometry)); // Border should intersect. Also use Feature instead of Literal as a source. - final Feature feature = createFeatureWithGeometry(library.polygonClass); - final ValueReference<Feature,?> ref = factory.property(P_NAME, library.polygonClass); + final AbstractFeature feature = createFeatureWithGeometry(library.polygonClass); + final Expression<AbstractFeature,?> ref = factory.property(P_NAME, library.polygonClass); - point = library.createPoint(1.2, 0.2); + point = library.createPoint(0.2, 0.3); function = factory.function("ST_Intersects", ref, factory.literal(point)); assertEquals(Boolean.TRUE, function.apply(feature)); diff --cc core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_Scope.java index 0500404,72aa3b6..a1cdf15 --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_Scope.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/MD_Scope.java @@@ -16,8 -16,9 +16,9 @@@ */ package org.apache.sis.internal.jaxb.metadata; + import java.net.URISyntaxException; import javax.xml.bind.annotation.XmlElementRef; -import org.opengis.metadata.maintenance.Scope; +import org.opengis.metadata.quality.Scope; import org.apache.sis.metadata.iso.maintenance.DefaultScope; import org.apache.sis.internal.jaxb.gco.PropertyType; @@@ -92,6 -93,21 +93,21 @@@ public class MD_Scope extends PropertyT } /** + * On unmarshalling, creates an instance of the deprecated + * {@link org.apache.sis.metadata.iso.quality.DefaultScope} subclass. + */ + public static final class Legacy extends MD_Scope { + /** Empty constructor used only by JAXB. */ + public Legacy() { + } + + /** Converts an adapter read from an XML stream. */ + @Override public Scope unmarshal(final MD_Scope value) throws URISyntaxException { - return org.apache.sis.metadata.iso.quality.DefaultScope.castOrCopy( super.unmarshal(value)); ++ return DefaultScope.castOrCopy( super.unmarshal(value)); + } + } + + /** * Wraps the value only if marshalling an element from the ISO 19115:2003 metadata model. * Otherwise (i.e. if marshalling according legacy ISO 19115:2014 model), omits the element. */ diff --cc core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java index 5533ba5,76ecb6b..87f74ff --- a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java @@@ -16,19 -16,11 +16,19 @@@ */ package org.apache.sis.internal.simple; +import java.util.Date; import java.util.Objects; +import java.util.Collection; +import java.util.Collections; import java.io.Serializable; +import org.opengis.metadata.Identifier; import org.opengis.metadata.citation.Citation; +import org.opengis.metadata.citation.CitationDate; +import org.opengis.metadata.citation.PresentationForm; +import org.opengis.metadata.citation.ResponsibleParty; +import org.opengis.metadata.citation.Series; import org.opengis.util.InternationalString; - import org.apache.sis.util.iso.SimpleInternationalString; + import org.apache.sis.util.SimpleInternationalString; import org.apache.sis.internal.util.Strings; diff --cc core/sis-metadata/src/main/java/org/apache/sis/util/iso/Types.java index f697bd6,d5433d4..173b7c0 --- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Types.java +++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Types.java @@@ -28,7 -30,11 +30,10 @@@ import java.io.IOException import java.io.InputStream; import org.opengis.annotation.UML; import org.opengis.util.CodeList; -import org.opengis.util.ControlledVocabulary; import org.opengis.util.InternationalString; + import org.apache.sis.util.SimpleInternationalString; + import org.apache.sis.util.DefaultInternationalString; + import org.apache.sis.util.ResourceInternationalString; import org.apache.sis.util.Static; import org.apache.sis.util.Locales; import org.apache.sis.util.CharSequences; diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java index 98d36cc,1816da1..79d37af --- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java +++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java @@@ -49,15 -50,13 +49,15 @@@ import org.opengis.referencing.datum.Ge import org.opengis.referencing.cs.EllipsoidalCS; import org.opengis.util.InternationalString; import org.opengis.util.GenericName; -import org.opengis.temporal.Duration; import org.apache.sis.util.ComparisonMode; - import org.apache.sis.util.iso.SimpleInternationalString; + import org.apache.sis.util.SimpleInternationalString; import org.apache.sis.metadata.iso.citation.DefaultCitation; import org.apache.sis.metadata.iso.citation.HardCodedCitations; +import org.apache.sis.metadata.iso.content.DefaultAttributeGroup; import org.apache.sis.metadata.iso.content.DefaultCoverageDescription; +import org.apache.sis.metadata.iso.identification.AbstractIdentification; +import org.apache.sis.metadata.iso.identification.DefaultAssociatedResource; import org.apache.sis.metadata.iso.identification.DefaultDataIdentification; import org.apache.sis.test.DependsOnMethod; import org.apache.sis.test.DependsOn; diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java index b7fa6d5,c01907e..87186e4 --- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java +++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java @@@ -27,14 -27,9 +27,14 @@@ import javax.xml.bind.JAXBException import org.opengis.util.NameFactory; import org.opengis.metadata.identification.*; import org.opengis.metadata.citation.Citation; +import org.opengis.metadata.citation.ResponsibleParty; +import org.opengis.metadata.constraint.Constraints; +import org.opengis.metadata.distribution.Format; import org.opengis.metadata.extent.Extent; +import org.opengis.metadata.maintenance.MaintenanceInformation; +import org.opengis.metadata.spatial.SpatialRepresentationType; import org.opengis.util.InternationalString; - import org.apache.sis.util.iso.SimpleInternationalString; + import org.apache.sis.util.SimpleInternationalString; import org.apache.sis.metadata.iso.citation.DefaultCitation; import org.apache.sis.internal.system.DefaultFactories; import org.apache.sis.test.xml.TestCase; diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/quality/ScopeCodeTest.java index 0000000,126617c..137c841 mode 000000,100644..100644 --- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/quality/ScopeCodeTest.java +++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/quality/ScopeCodeTest.java @@@ -1,0 -1,79 +1,79 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.apache.sis.metadata.iso.quality; + + import javax.xml.bind.JAXBException; -import org.opengis.metadata.maintenance.Scope; ++import org.opengis.metadata.quality.Scope; + import org.opengis.metadata.maintenance.ScopeCode; + import org.apache.sis.test.xml.TestCase; + import org.junit.Test; + + import static org.apache.sis.test.MetadataAssert.*; + + + /** + * Tests the marshalling of elements containing {@link ScopeCode}. + * When formatting legacy XML, {@code MD_Scope} should be renamed {@code DQ_Scope}. + * + * @author Martin Desruisseaux (Geomatys) + * @version 1.1 + * + * @see <a href="https://issues.apache.org/jira/browse/SIS-508">SIS-508 on issue tracker</a> + * + * @since 1.1 + * @module + */ + public final strictfp class ScopeCodeTest extends TestCase { + /** + * The XML fragment used for testing. + */ + private static final String XML = + "<gmd:DQ_DataQuality xmlns:gmd=\"http://www.isotc211.org/2005/gmd\">\n" + + " <gmd:scope>\n" + + " <gmd:DQ_Scope>\n" + + " <gmd:level>\n" + + " <gmd:MD_ScopeCode codeList=\"http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ScopeCode\"" + + " codeListValue=\"dataset\" codeSpace=\"eng\">Dataset</gmd:MD_ScopeCode>\n" + + " </gmd:level>\n" + + " </gmd:DQ_Scope>\n" + + " </gmd:scope>\n" + + "</gmd:DQ_DataQuality>\n"; + + /** + * Tests marshalling a small metadata containing a {@link ScopeCode}. + * + * @throws JAXBException if an error occurred during XML marshalling. + */ + @Test + public void testMarshallingLegacy() throws JAXBException { + final String actual = marshal(new DefaultDataQuality(ScopeCode.DATASET), VERSION_2007); + assertXmlEquals(XML, actual, "xmlns:*"); + } + + /** + * Tests unmarshalling a small metadata containing a {@link ScopeCode}. + * + * @throws JAXBException if an error occurred during XML unmarshalling. + */ + @Test + public void testUnmarshallingLegacy() throws JAXBException { + final DefaultDataQuality metadata = unmarshal(DefaultDataQuality.class, XML); + final Scope scope = metadata.getScope(); + assertNotNull("scope", scope); + assertEquals(ScopeCode.DATASET, scope.getLevel()); + } + } diff --cc core/sis-metadata/src/test/java/org/apache/sis/util/iso/TypesTest.java index dbbc34f,17161db..d077ca4 --- 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 @@@ -30,6 -30,9 +30,8 @@@ import org.opengis.metadata.content.Ima import org.opengis.referencing.datum.Datum; import org.opengis.referencing.datum.PixelInCell; import org.opengis.referencing.cs.AxisDirection; -import org.opengis.parameter.ParameterDirection; + import org.apache.sis.util.SimpleInternationalString; + import org.apache.sis.util.DefaultInternationalString; import org.apache.sis.test.TestCase; import org.junit.Test; diff --cc core/sis-utility/src/main/java/org/apache/sis/util/AbstractInternationalString.java index ecf4c4e,8db84a3..174015a --- a/core/sis-utility/src/main/java/org/apache/sis/util/AbstractInternationalString.java +++ b/core/sis-utility/src/main/java/org/apache/sis/util/AbstractInternationalString.java @@@ -39,10 -38,10 +38,10 @@@ import org.apache.sis.internal.util.Str * by a {@link org.opengis.util.CodeList} value. This can be done with: * * <ul> - * <li>{@link Types#getCodeTitle(CodeList)} for getting the {@link InternationalString} - * instance to store in a metadata property.</li> - * <li>{@link Types#forCodeTitle(CharSequence)} for retrieving the {@link org.opengis.util.CodeList} - * previously stored as an {@code InternationalString}.</li> - * <li>{@link org.apache.sis.util.iso.Types#getCodeTitle(ControlledVocabulary)} for getting ++ * <li>{@link org.apache.sis.util.iso.Types#getCodeTitle(CodeList)} for getting + * the {@link InternationalString} instance to store in a metadata property.</li> + * <li>{@link org.apache.sis.util.iso.Types#forCodeTitle(CharSequence)} for retrieving the + * {@link org.opengis.util.CodeList} previously stored as an {@code InternationalString}.</li> * </ul> * * @author Martin Desruisseaux (IRD, Geomatys) diff --cc ide-project/NetBeans/nbproject/build-impl.xml index ead8b41,bcc1101..101717a --- a/ide-project/NetBeans/nbproject/build-impl.xml +++ b/ide-project/NetBeans/nbproject/build-impl.xml @@@ -343,10 -341,9 +340,8 @@@ is divided into following sections <fail unless="src.utility.dir">Must set src.utility.dir</fail> <fail unless="src.fra-profile.dir">Must set src.fra-profile.dir</fail> <fail unless="src.jpn-profile.dir">Must set src.jpn-profile.dir</fail> - <fail unless="src.gdal.dir">Must set src.gdal.dir</fail> - <fail unless="src.c.gdal.dir">Must set src.c.gdal.dir</fail> <fail unless="test.javafx.dir">Must set test.javafx.dir</fail> <fail unless="test.console.dir">Must set test.console.dir</fail> - <fail unless="test.portrayal.dir">Must set test.portrayal.dir</fail> <fail unless="test.earth-obs.dir">Must set test.earth-obs.dir</fail> <fail unless="test.geotiff.dir">Must set test.geotiff.dir</fail> <fail unless="test.netcdf.dir">Must set test.netcdf.dir</fail> @@@ -782,12 -781,9 +773,9 @@@ <fileset dir="${test.jpn-profile.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> <filename name="@{testincludes}"/> </fileset> - <fileset dir="${test.gdal.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> </union> <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> - <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Apache_SIS_on_GeoAPI_3.1" testname="TestNG tests" workingDir="${work.dir}"> + <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Apache_SIS_on_GeoAPI_3.0" testname="TestNG tests" workingDir="${work.dir}"> <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> <propertyset> <propertyref prefix="test-sys-prop."/> @@@ -1852,14 -1834,14 +1826,14 @@@ <!-- You can override this target in the ../build.xml file. --> </target> <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-javac-module-properties-with-module"> - <j2seproject3:modulename property="test.module.name" sourcepath="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test.gdal.dir}"/> - <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test.gdal.dir}"> - <j2seproject3:modulename property="test.module.name" sourcepath="${test.javafx.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}"/> - <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.javafx.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}"> ++ <j2seproject3:modulename property="test.module.name" sourcepath="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}"/> ++ <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}"> <and> <isset property="test.module.name"/> <length length="0" string="${test.module.name}" when="greater"/> </and> </condition> - <condition else="--patch-module ${module.name}=${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test.gdal.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--a [...] - <condition else="--patch-module ${module.name}=${test.javafx.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value [...] ++ <condition else="--patch-module ${module.name}=${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--add-reads ${test.m [...] <and> <isset property="test.module.name"/> <length length="0" string="${test.module.name}" when="greater"/> @@@ -1900,10 -1882,10 +1874,10 @@@ </target> <target depends="-init-test-javac-module-properties-with-module,-init-test-module-properties-without-module" name="-init-test-module-properties"/> <target if="do.depend.true" name="-compile-test-depend"> - <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}:${test.gdal.dir}"/> - <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.javafx.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}"/> ++ <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${test.referencing.dir}:${test.ref-by-id.dir}:${test.metadata.dir}:${test.utility.dir}:${test.fra-profile.dir}:${test.jpn-profile.dir}"/> </target> <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${tes [...] - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.javafx.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${t [...] ++ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}:${test.feature.dir}:${tes [...] <customize> <compilerarg line="${javac.test.compilerargs}"/> </customize> @@@ -1940,7 -1922,7 +1913,7 @@@ <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}: [...] - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.javafx.dir}:${test.console.dir}:${test.portrayal.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir [...] ++ <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.javafx.dir}:${test.console.dir}:${test.earth-obs.dir}:${test.geotiff.dir}:${test.netcdf.dir}:${test.shapefile.dir}:${test.sql.dir}:${test.xmlstore.dir}:${test.storage.dir}: [...] <customize> <compilerarg line="${javac.test.compilerargs}"/> </customize> diff --cc ide-project/NetBeans/nbproject/genfiles.properties index c1e17d6,2900b94..8b030ff --- a/ide-project/NetBeans/nbproject/genfiles.properties +++ b/ide-project/NetBeans/nbproject/genfiles.properties @@@ -3,6 -3,6 +3,6 @@@ build.xml.data.CRC32=58e6b21c build.xml.script.CRC32=462eaba0 build.xml.stylesheet.CRC32=28e38971@1.53.1.46 - nbproject/build-impl.xml.data.CRC32=30c56637 - nbproject/build-impl.xml.script.CRC32=c08b9acd -nbproject/build-impl.xml.data.CRC32=0142681e -nbproject/build-impl.xml.script.CRC32=0a9c8fc8 ++nbproject/build-impl.xml.data.CRC32=bff50692 ++nbproject/build-impl.xml.script.CRC32=ef3dbbf1 nbproject/build-impl.xml.stylesheet.CRC32=d549e5cc@1.99.0.48