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 27465f381eead2554a852a1fe6f03e267ae4f7a8 Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Tue Oct 1 16:53:13 2024 +0200 Move the GDAL module from "incubator" to "optional". The use of `optional` is temporary since the GDAL license is not a problem. This is because the module depends on Java 22, while the core library depends on Java 11. --- incubator/build.gradle.kts | 17 ++--------------- optional/README.md | 3 +++ optional/build.gradle.kts | 19 +++++++++++++++++-- optional/src/org.apache.sis.gui/bundle/README | 5 +++-- .../org.apache.sis.storage.DataStoreProvider | 0 .../main/module-info.java | 0 .../main/org/apache/sis/storage/gdal/Band.java | 0 .../apache/sis/storage/gdal/ColorInterpretation.java | 0 .../main/org/apache/sis/storage/gdal/DataType.java | 0 .../main/org/apache/sis/storage/gdal/Driver.java | 0 .../org/apache/sis/storage/gdal/ErrorHandler.java | 0 .../main/org/apache/sis/storage/gdal/GDAL.java | 0 .../main/org/apache/sis/storage/gdal/GDALStore.java | 0 .../apache/sis/storage/gdal/GDALStoreProvider.java | 0 .../main/org/apache/sis/storage/gdal/OpenFlag.java | 0 .../main/org/apache/sis/storage/gdal/Opener.java | 0 .../main/org/apache/sis/storage/gdal/SpatialRef.java | 0 .../main/org/apache/sis/storage/gdal/Subdataset.java | 0 .../org/apache/sis/storage/gdal/SubdatasetList.java | 0 .../org/apache/sis/storage/gdal/TiledCoverage.java | 0 .../org/apache/sis/storage/gdal/TiledResource.java | 0 .../org/apache/sis/storage/gdal/package-info.java | 0 .../org/apache/sis/storage/panama/LibraryLoader.java | 0 .../org/apache/sis/storage/panama/LibraryStatus.java | 0 .../apache/sis/storage/panama/NativeFunctions.java | 0 .../org/apache/sis/storage/panama/Resources.java | 0 .../apache/sis/storage/panama/Resources.properties | 0 .../org/apache/sis/storage/panama/Resources_en.java | 0 .../org/apache/sis/storage/panama/Resources_fr.java | 0 .../sis/storage/panama/Resources_fr.properties | 0 .../org/apache/sis/storage/panama/package-info.java | 0 .../org/apache/sis/storage/gdal/GDALStoreTest.java | 0 .../test/org/apache/sis/storage/gdal/test.tiff | Bin 33 files changed, 25 insertions(+), 19 deletions(-) diff --git a/incubator/build.gradle.kts b/incubator/build.gradle.kts index 6a4a938e89..85c219f390 100644 --- a/incubator/build.gradle.kts +++ b/incubator/build.gradle.kts @@ -85,7 +85,7 @@ tasks.compileJava { } tasks.compileTestJava { options.compilerArgs.add("-source") // "source", not "release", because we accept any target version. - options.compilerArgs.add("16") // For consistency with the value set in the `endorsed` modules. + options.compilerArgs.add("22") srcDir.list().forEach { addRead(options.compilerArgs, it, "org.apache.sis.test.incubator,org.junit.jupiter.api") } @@ -140,7 +140,7 @@ fun addExportForTests(args : MutableList<String>) { tasks.test { val args = mutableListOf("-enableassertions") args.add("--enable-native-access") - args.add("org.apache.sis.storage.gdal") + args.add("org.apache.sis.storage.gsf") addExportForTests(args) addExport(args, "org.apache.sis.cql", "org.apache.sis.cql", "ALL-UNNAMED") setAllJvmArgs(args) @@ -206,19 +206,6 @@ publishing { description = "Read and write files in the GeoPackage format." } } - create<MavenPublication>("storage.gdal") { - var module = "org.apache.sis.storage.gdal" - groupId = "org.apache.sis.storage" - artifactId = "sis-gdal" - artifact(layout.buildDirectory.file("libs/${module}.jar")) - artifact(layout.buildDirectory.file("docs/${module}-sources.jar")) {classifier = "sources"} - artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar")) {classifier = "javadoc"} - pom { - name = "Apache SIS storage using GDAL through Panama" - description = "Read and write files using the GDAL library. " + - "This module assumes that GDAL is pre-installed." - } - } create<MavenPublication>("storage.gsf") { var module = "org.apache.sis.storage.gsf" groupId = "org.apache.sis.storage" diff --git a/optional/README.md b/optional/README.md index 87b33e8562..32cccd5bf5 100644 --- a/optional/README.md +++ b/optional/README.md @@ -7,6 +7,9 @@ SIS releases because they are under more restrictive licenses than Apache 2. If those dependencies are not provided, Apache SIS [endorsed](../endorsed) modules will still work but without Graphical User Interface (GUI). +GDAL is temporarily provided as an optional module despite its permissive license +because it requires Java 22, while the main Apache SIS modules target Java 11. + ## Configuration Paths to dependencies are specified by the following environment variables. diff --git a/optional/build.gradle.kts b/optional/build.gradle.kts index 156e99e056..dbcd427a82 100644 --- a/optional/build.gradle.kts +++ b/optional/build.gradle.kts @@ -83,11 +83,11 @@ dependencies { var srcDir = file("src") // Must be the same as the hard-coded value in `BuildHelper.java`. tasks.compileJava { dependsOn(":endorsed:compileJava") - options.release.set(16) // The version of both Java source code and compiled byte code. + options.release.set(22) // The version of both Java source code and compiled byte code. } tasks.compileTestJava { options.compilerArgs.add("-source") // "source", not "release", because we accept any target version. - options.compilerArgs.add("16") + options.compilerArgs.add("22") patchForTests(options.compilerArgs); srcDir.list().forEach { addRead(options.compilerArgs, it, "org.apache.sis.test.optional,org.junit.jupiter.api") @@ -187,6 +187,8 @@ fun addLicenseEPSG() { */ tasks.test { val args = mutableListOf("-enableassertions") + args.add("--enable-native-access") + args.add("org.apache.sis.storage.gdal") patchForTests(args); addRead (args, "org.apache.sis.util", "ALL-UNNAMED") addExport(args, "org.apache.sis.util", "org.apache.sis.test", "ALL-UNNAMED") @@ -293,6 +295,19 @@ publishing { "See https://openjfx.io/openjfx-docs/#install-javafx for details." } } + create<MavenPublication>("storage.gdal") { + var module = "org.apache.sis.storage.gdal" + groupId = "org.apache.sis.storage" + artifactId = "sis-gdal" + artifact(layout.buildDirectory.file("libs/${module}.jar")) + artifact(layout.buildDirectory.file("docs/${module}-sources.jar")) {classifier = "sources"} + artifact(layout.buildDirectory.file("docs/${module}-javadoc.jar")) {classifier = "javadoc"} + pom { + name = "Apache SIS storage using GDAL through Panama" + description = "Read and write files using the GDAL library. " + + "This module assumes that GDAL is pre-installed." + } + } } /* Following block is currently repeated in all sub-projects. */ repositories { diff --git a/optional/src/org.apache.sis.gui/bundle/README b/optional/src/org.apache.sis.gui/bundle/README index 950807eb18..d7d8a71b87 100644 --- a/optional/src/org.apache.sis.gui/bundle/README +++ b/optional/src/org.apache.sis.gui/bundle/README @@ -14,8 +14,9 @@ Installation ============ For developing applications using the SIS library or for using on command-line, -the only requirement is Java 11 or later. For launching the desktop application, -requirements are Java 16 or later and JavaFX 20 or later. +the only requirement is Java 11 or later, except the GDAL module which requires +Java 22. For launching the desktop application, requirements are Java 22 or later +and JavaFX 20 or later. 1) Unzip `apache-sis-1.4-bin.zip` in any directory. 2) Invoke `./apache-sis-1.4/bin/sis` for the command-line. diff --git a/incubator/src/org.apache.sis.storage.gdal/main/META-INF.services/org.apache.sis.storage.DataStoreProvider b/optional/src/org.apache.sis.storage.gdal/main/META-INF.services/org.apache.sis.storage.DataStoreProvider similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/META-INF.services/org.apache.sis.storage.DataStoreProvider rename to optional/src/org.apache.sis.storage.gdal/main/META-INF.services/org.apache.sis.storage.DataStoreProvider diff --git a/incubator/src/org.apache.sis.storage.gdal/main/module-info.java b/optional/src/org.apache.sis.storage.gdal/main/module-info.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/module-info.java rename to optional/src/org.apache.sis.storage.gdal/main/module-info.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Band.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ColorInterpretation.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ColorInterpretation.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ColorInterpretation.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ColorInterpretation.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/DataType.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/DataType.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/DataType.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/DataType.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Driver.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Driver.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Driver.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Driver.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ErrorHandler.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ErrorHandler.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ErrorHandler.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/ErrorHandler.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDAL.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDAL.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDAL.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDAL.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStore.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStore.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStore.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStore.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStoreProvider.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStoreProvider.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStoreProvider.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/GDALStoreProvider.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/OpenFlag.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/OpenFlag.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/OpenFlag.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/OpenFlag.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Opener.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Opener.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Opener.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Opener.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SpatialRef.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SpatialRef.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SpatialRef.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SpatialRef.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Subdataset.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Subdataset.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Subdataset.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/Subdataset.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SubdatasetList.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SubdatasetList.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SubdatasetList.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/SubdatasetList.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledCoverage.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledCoverage.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledCoverage.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledCoverage.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/TiledResource.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/package-info.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/package-info.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/package-info.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/gdal/package-info.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryLoader.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryLoader.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryLoader.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryLoader.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryStatus.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryStatus.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryStatus.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/LibraryStatus.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/NativeFunctions.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/NativeFunctions.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/NativeFunctions.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/NativeFunctions.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.properties b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.properties similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.properties rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources.properties diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_en.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_en.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_en.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_en.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.java diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.properties b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.properties similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.properties rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/Resources_fr.properties diff --git a/incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/package-info.java b/optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/package-info.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/package-info.java rename to optional/src/org.apache.sis.storage.gdal/main/org/apache/sis/storage/panama/package-info.java diff --git a/incubator/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/GDALStoreTest.java b/optional/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/GDALStoreTest.java similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/GDALStoreTest.java rename to optional/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/GDALStoreTest.java diff --git a/incubator/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/test.tiff b/optional/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/test.tiff similarity index 100% rename from incubator/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/test.tiff rename to optional/src/org.apache.sis.storage.gdal/test/org/apache/sis/storage/gdal/test.tiff