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 00bd0215240e624746adcc59bc38cd5bccb41eae Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Fri Oct 27 14:06:54 2023 +0200 Fix the project configuration for the addition of CoverageJSON store. --- .../org.apache.sis.storage/main/module-info.java | 10 ++++---- .../main/module-info.java | 29 ++++++++++++++++++---- .../sis/storage/coveragejson/CoverageResource.java | 5 ++-- .../storage/coveragejson/binding/package-info.java | 7 +----- .../sis/storage/coveragejson}/package-info.java | 11 +++----- .../sis/storage/coveragejson/binding/LICENSE.md | 5 ++++ netbeans-project/ivy.xml | 1 + netbeans-project/nbproject/project.properties | 1 + settings.gradle.kts | 2 +- 9 files changed, 44 insertions(+), 27 deletions(-) diff --git a/endorsed/src/org.apache.sis.storage/main/module-info.java b/endorsed/src/org.apache.sis.storage/main/module-info.java index e5b206051e..adf86a6b61 100644 --- a/endorsed/src/org.apache.sis.storage/main/module-info.java +++ b/endorsed/src/org.apache.sis.storage/main/module-info.java @@ -20,7 +20,7 @@ * * @author Johann Sorel (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 1.4 + * @version 1.5 * @since 0.3 */ module org.apache.sis.storage { @@ -53,20 +53,20 @@ module org.apache.sis.storage { org.apache.sis.storage.netcdf, org.apache.sis.storage.geotiff, org.apache.sis.storage.earthobservation, + org.apache.sis.storage.coveragejson, // In the "incubator" sub-project. org.apache.sis.util, // For the "About" command. org.apache.sis.console, org.apache.sis.openoffice, - org.apache.sis.gui, // In the "optional" sub-project. - org.apache.sis.storage.coveragejson; // In the "incubator" + org.apache.sis.gui; // In the "optional" sub-project. exports org.apache.sis.io.stream to org.apache.sis.storage.xml, org.apache.sis.storage.sql, org.apache.sis.storage.netcdf, org.apache.sis.storage.geotiff, + org.apache.sis.storage.coveragejson, // In the "incubator" sub-project. org.apache.sis.cloud.aws, - org.apache.sis.gui, // In the "optional" sub-project. - org.apache.sis.storage.coveragejson; // In the "incubator" + org.apache.sis.gui; // In the "optional" sub-project. exports org.apache.sis.storage.xml to org.apache.sis.storage.xml, diff --git a/incubator/src/org.apache.sis.storage.coveragejson/main/module-info.java b/incubator/src/org.apache.sis.storage.coveragejson/main/module-info.java index 2daabe4da5..4005e4cdf9 100644 --- a/incubator/src/org.apache.sis.storage.coveragejson/main/module-info.java +++ b/incubator/src/org.apache.sis.storage.coveragejson/main/module-info.java @@ -18,18 +18,37 @@ /** * Coverage-json store. * + * @todo Consider renaming as {@code org.apache.sis.storage.json.coverage} in order to group all JSON formats + * in a single root. Also rename package names accordingly. Having the exact format name "coveragejson" + * in module/package name is redundant with {@code CoverageJsonStore} class name. Furthermore the + * "Coverage-json" description appears right after module name in Javadoc. Having a single "json" + * root allow Javadoc to detect more easily the related modules and organize them accordingly. + * * @author Johann Sorel (Geomatys) */ module org.apache.sis.storage.coveragejson { + // Dependencies used in public API. + requires transitive org.apache.sis.referencing; requires transitive org.apache.sis.storage; - requires transitive jakarta.json.bind; - requires transitive jakarta.json; - requires transitive org.eclipse.yasson; + + // Dependencies internal to the implementation. + requires jakarta.json; + requires jakarta.json.bind; + + // Temporary dependency used by BindingTest class. TODO: remove that dependency. + requires org.eclipse.yasson; provides org.apache.sis.storage.DataStoreProvider - with org.apache.sis.storage.coveragejson.CoverageJsonStoreProvider; + with org.apache.sis.storage.coveragejson.CoverageJsonStoreProvider; exports org.apache.sis.storage.coveragejson; - //should not be exposed but is needed for yasson to find classes and methods. + + /* + * TODO + * Following should be a qualified export to `org.eclipse.yasson` only. + * However it does not work with Yasson: + * + * https://github.com/eclipse-ee4j/yasson/issues/545 + */ exports org.apache.sis.storage.coveragejson.binding; } diff --git a/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java index d1e3f18a78..305c924a72 100644 --- a/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java +++ b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java @@ -83,11 +83,12 @@ import org.opengis.referencing.operation.MathTransform1D; import org.opengis.referencing.operation.Matrix; import org.opengis.util.FactoryException; + /** * * @author Johann Sorel (Geomatys) */ -public final class CoverageResource extends AbstractGridCoverageResource { +final class CoverageResource extends AbstractGridCoverageResource { private static final DateTimeFormatter YEAR = new DateTimeFormatterBuilder() .appendValue(ChronoField.YEAR, 1, 19, SignStyle.EXCEEDS_PAD) @@ -483,7 +484,7 @@ public final class CoverageResource extends AbstractGridCoverageResource { throw new DataStoreException("Unable to parse date : " + str); } - public static Coverage gridCoverageToBinding(GridCoverage coverage) throws DataStoreException { + static Coverage gridCoverageToBinding(GridCoverage coverage) throws DataStoreException { final Coverage binding = new Coverage(); try { diff --git a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/package-info.java b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/binding/package-info.java similarity index 73% copy from incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/package-info.java copy to incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/binding/package-info.java index 345ce5bfe4..eee2eb8dfb 100644 --- a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/package-info.java +++ b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/binding/package-info.java @@ -16,12 +16,7 @@ */ /** - * This package contains json binding test files extracted from the specification. - * According to https://github.com/opengeospatial/CoverageJSON the json test files are in Apache 2. - * - * Copyright Open Geospatial Consortium (OGC) - * Licensed under the Apache License, Version 2.0. - * https://github.com/opengeospatial/CoverageJSON + * JSON bindings. * * @author Johann Sorel (Geomatys) */ diff --git a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/package-info.java b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/package-info.java similarity index 65% rename from incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/package-info.java rename to incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/package-info.java index 345ce5bfe4..0e10be8250 100644 --- a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/package-info.java +++ b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/package-info.java @@ -16,13 +16,8 @@ */ /** - * This package contains json binding test files extracted from the specification. - * According to https://github.com/opengeospatial/CoverageJSON the json test files are in Apache 2. + * Coverage-json store. * - * Copyright Open Geospatial Consortium (OGC) - * Licensed under the Apache License, Version 2.0. - * https://github.com/opengeospatial/CoverageJSON - * - * @author Johann Sorel (Geomatys) + * @author Johann Sorel (Geomatys) */ -package org.apache.sis.storage.coveragejson.binding; +package org.apache.sis.storage.coveragejson; diff --git a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/LICENSE.md b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/LICENSE.md new file mode 100644 index 0000000000..e09d470a88 --- /dev/null +++ b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/binding/LICENSE.md @@ -0,0 +1,5 @@ +# License of test files + +This directory contains JSON binding test files extracted from the OGC specification. +All those JSON files are copyright Open Geospatial Consortium (OGC) and licensed under +the Apache 2 license. Source: https://github.com/opengeospatial/CoverageJSON diff --git a/netbeans-project/ivy.xml b/netbeans-project/ivy.xml index a0b405974e..44be15410c 100644 --- a/netbeans-project/ivy.xml +++ b/netbeans-project/ivy.xml @@ -13,6 +13,7 @@ <dependencies defaultconf="default"> <dependency org="javax.measure" name="unit-api" rev="2.1.3"/> <dependency org="org.glassfish.jaxb" name="jaxb-runtime" rev="4.0.3"/> + <dependency org="org.eclipse" name="yasson" rev="3.0.3"/> <dependency org="com.esri.geometry" name="esri-geometry-api" rev="2.2.4"/> <dependency org="org.locationtech.jts" name="jts-core" rev="1.19.0"/> <dependency org="org.postgresql" name="postgresql" rev="42.6.0"/> diff --git a/netbeans-project/nbproject/project.properties b/netbeans-project/nbproject/project.properties index e95d4888b2..e918ad9a83 100644 --- a/netbeans-project/nbproject/project.properties +++ b/netbeans-project/nbproject/project.properties @@ -88,6 +88,7 @@ read.options = --add-reads org.apache.sis.cloud.aws=org.junit.jupiter.api,junit --add-reads org.apache.sis.referencing=org.junit.jupiter.api,junit \ --add-reads org.apache.sis.referencing.gazetteer=org.junit.jupiter.api,junit \ --add-reads org.apache.sis.storage=org.junit.jupiter.api,junit \ + --add-reads org.apache.sis.storage.coveragejson=org.junit.jupiter.api,junit \ --add-reads org.apache.sis.storage.earthobservation=org.junit.jupiter.api,junit \ --add-reads org.apache.sis.storage.geotiff=org.junit.jupiter.api,junit \ --add-reads org.apache.sis.storage.netcdf=org.junit.jupiter.api,junit \ diff --git a/settings.gradle.kts b/settings.gradle.kts index 4328a13284..da2ac67154 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -62,12 +62,12 @@ dependencyResolutionManagement { library("units", "javax.measure", "unit-api") .version {strictly("[2.1, 3.0["); prefer("2.1.3")} library("jaxb.api", "jakarta.xml.bind", "jakarta.xml.bind-api").version {strictly("[4.0, 5.0["); prefer("4.0.1")} library("jaxb.impl", "org.glassfish.jaxb", "jaxb-runtime") .version {strictly("[4.0, 5.0["); prefer("4.0.3")} + library("yasson", "org.eclipse", "yasson") .version {strictly("[3.0, 4.0["); prefer("3.0.3")} library("jts.core", "org.locationtech.jts", "jts-core") .version {strictly("[1.15, 2.0["); prefer("1.19.0")} library("esri.geometry", "com.esri.geometry", "esri-geometry-api") .version {strictly("[2.0, 3.0["); prefer("2.2.4")} library("libreoffice", "org.libreoffice", "libreoffice") .version {strictly("[7.0, 8.0["); prefer("7.6.1")} library("ucar", "edu.ucar", "cdm-core") .version {strictly("[5.0, 6.0["); prefer("5.5.3")} library("aws.s3", "software.amazon.awssdk", "s3") .version {strictly("[2.0, 3.0["); prefer("2.20.155")} - library("yasson", "org.eclipse", "yasson") .version {strictly("3.0.3"); prefer("3.0.3")} } create("tests") { library("geoapi", "org.opengis", "geoapi-conformance") .version {strictly(geoapiVersion)}