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 2023/10/27 12:28:18 UTC
(sis) 01/02: Fix the project configuration for the addition of CoverageJSON store.
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 <ma...@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)}