From 36f36f749107d6ce28caec381885bf4d3b1ca8f3 Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Tue, 26 Aug 2025 15:01:14 -0400 Subject: [PATCH 01/11] Expanding the ExportDataProvider interface to add hooks for more efficient handling of the raw data for datasets with massive numbers of ingested/tabular datafiles and variables. #11766 #11405 --- modules/dataverse-spi/pom.xml | 2 +- .../gdcc/spi/export/ExportDataProvider.java | 28 +++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/modules/dataverse-spi/pom.xml b/modules/dataverse-spi/pom.xml index b00053fe5e0..8c31a2a4026 100644 --- a/modules/dataverse-spi/pom.xml +++ b/modules/dataverse-spi/pom.xml @@ -13,7 +13,7 @@ io.gdcc dataverse-spi - 2.0.0${project.version.suffix} + 2.1.0${project.version.suffix} jar Dataverse SPI Plugin API diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java index d039ac39e8f..45b332fb088 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java @@ -21,8 +21,13 @@ public interface ExportDataProvider { * OAI_ORE export are the only two that provide 'complete' * dataset-level metadata along with basic file metadata for each file * in the dataset. + * @param options - optional argument(s). currently supports DatasetMetadataOnly: + * in a situation where we need to generate a format like DC, + * that has no use for file-level metadata, it makes sense to + * skip retrieving and formatting it, since there can be quite a few + * files in a dataset. */ - JsonObject getDatasetJson(); + JsonObject getDatasetJson(ExportDataOption... options); /** * @@ -39,7 +44,7 @@ public interface ExportDataProvider { * Dataverse is capable of extracting DDI-centric metadata from tabular * datafiles. This detailed metadata, which is only available for successfully * "ingested" tabular files, is not included in the output of any other methods - * in this interface. + * in this interface. * * @return - a JSONArray with one entry per ingested tabular dataset file. * @apiNote - there is no JSON schema available for this output and the format @@ -50,6 +55,20 @@ public interface ExportDataProvider { */ JsonArray getDatasetFileDetails(); + /** + * Similar to the above, but + * a) retrieves the information for the ingested/tabular data files _only_ + * b) provides an option for retrieving this stuff in batches + * c) provides an option for skipping restricted/embargoed etc. files. + * Intended for datasets with massive numbers of tabular files and datavariables. + * @param offset (can be null) + * @param length (can be null) + * @param options (optional) supports PublicFilesOnly; + * @return json array containing the datafile/filemetadata->datatable->datavariable metadata + * @throws ExportException + */ + JsonArray getTabularDataDetails(Integer offset, Integer length, ExportDataOption ... options) throws ExportException; + /** * * @return - the subset of metadata conforming to the schema.org standard as @@ -92,5 +111,10 @@ public interface ExportDataProvider { default Optional getPrerequisiteInputStream() { return Optional.empty(); } + + public enum ExportDataOption { + DatasetMetadataOnly, + PublicFilesOnly; + } } From f9963ca3405f158116f198c573418f8ede13932f Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Tue, 26 Aug 2025 15:14:34 -0400 Subject: [PATCH 02/11] cosmetic #11766 --- .../src/main/java/io/gdcc/spi/export/ExportDataProvider.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java index 45b332fb088..eefe0d7d828 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java @@ -21,7 +21,7 @@ public interface ExportDataProvider { * OAI_ORE export are the only two that provide 'complete' * dataset-level metadata along with basic file metadata for each file * in the dataset. - * @param options - optional argument(s). currently supports DatasetMetadataOnly: + * @param options - optional argument(s). needs to support ExportDataOption.DatasetMetadataOnly: * in a situation where we need to generate a format like DC, * that has no use for file-level metadata, it makes sense to * skip retrieving and formatting it, since there can be quite a few @@ -63,7 +63,7 @@ public interface ExportDataProvider { * Intended for datasets with massive numbers of tabular files and datavariables. * @param offset (can be null) * @param length (can be null) - * @param options (optional) supports PublicFilesOnly; + * @param options (optional) current use case is ExportDataOption.PublicFilesOnly; * @return json array containing the datafile/filemetadata->datatable->datavariable metadata * @throws ExportException */ From 409f77da07a67319c8bf99d4de2373f59ed922bc Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Wed, 27 Aug 2025 14:50:30 -0400 Subject: [PATCH 03/11] update Maven snapshot release id and URL #11766 #11512 --- modules/dataverse-spi/pom.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/dataverse-spi/pom.xml b/modules/dataverse-spi/pom.xml index 8c31a2a4026..a603e274234 100644 --- a/modules/dataverse-spi/pom.xml +++ b/modules/dataverse-spi/pom.xml @@ -64,11 +64,13 @@ - ossrh - https://s01.oss.sonatype.org/content/repositories/snapshots + central + https://central.sonatype.com/repository/maven-snapshots/ + ossrh + https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ @@ -110,7 +112,9 @@ nexus-staging-maven-plugin true + ossrh + https://s01.oss.sonatype.org true From 4ed1879c26e947fcb81d085fa7431541a76c291f Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Wed, 27 Aug 2025 14:51:08 -0400 Subject: [PATCH 04/11] explain how to publish a maven snapshot locally #11766 #11512 --- .../developers/making-library-releases.rst | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/doc/sphinx-guides/source/developers/making-library-releases.rst b/doc/sphinx-guides/source/developers/making-library-releases.rst index be867f9196a..0daa7fb89db 100755 --- a/doc/sphinx-guides/source/developers/making-library-releases.rst +++ b/doc/sphinx-guides/source/developers/making-library-releases.rst @@ -36,6 +36,32 @@ Releasing a Snapshot Version to Maven Central That is to say, to make a snapshot release, you only need to get one or more commits into the default branch. +It's possible, of course, to make snapshot releases outside of GitHub Actions, from environments such as your laptop. Generally, you'll want to look at the GitHub Action and try to do the equivalent. You'll need a file set up locally at ``~/.m2/settings.xml`` with the following (contact a core developer for the redacted bits): + +.. code-block:: bash + + + + + central + REDACTED + REDACTED + + + + +Then, study the GitHub Action and perform similar commands from your local environment. For example, as of this writing, for the dataverse-spi project, you can run the following commands, substituting the suffix you need: + +``mvn -f modules/dataverse-spi -Dproject.version.suffix="2.1.0-PR11767-SNAPSHOT" verify`` + +``mvn -f modules/dataverse-spi -Dproject.version.suffix="2.1.0-PR11767-SNAPSHOT" deploy`` + +This will upload the snapshot here, for example: https://central.sonatype.com/repository/maven-snapshots/io/gdcc/dataverse-spi/2.1.02.1.0-PR11767-SNAPSHOT/dataverse-spi-2.1.02.1.0-PR11767-20250827.182026-1.jar + +Before OSSRH was retired, you could browse through snapshot jars you published at https://s01.oss.sonatype.org/content/repositories/snapshots/io/gdcc/dataverse-spi/2.0.0-PR9685-SNAPSHOT/, for example. Now, even though you may see the URL of the jar as shown above during the "deploy" step, if you try to browse the various snapshot jars at https://central.sonatype.com/repository/maven-snapshots/io/gdcc/dataverse-spi/2.1.02.1.0-PR11767-SNAPSHOT/ you'll see "This maven2 hosted repository is not directly browseable at this URL. Please use the browse or HTML index views to inspect the contents of this repository." Sadly, the "browse" and "HTML index" links don't work, as noted in a `question `_ on the Sonatype Community forum. Below is a suggestion for confirming that the jar was uploaded properly, which is to use Maven to copy the jar to your local directory. You could then compare checksums. + +``mvn dependency:copy -DrepoUrl=https://central.sonatype.com/repository/maven-snapshots/ -Dartifact=io.gdcc:dataverse-spi:2.1.02.1.0-PR11767-SNAPSHOT -DoutputDirectory=.`` + Releasing a Release (Non-Snapshot) Version to Maven Central ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From f570aaaf411b76f6147d37c06a80fceaaa98962b Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Wed, 27 Aug 2025 16:24:05 -0400 Subject: [PATCH 05/11] add TODO comments to spi workflow #11766 #11512 --- .github/workflows/spi_release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/spi_release.yml b/.github/workflows/spi_release.yml index 6398edca412..1d29cdf76c9 100644 --- a/.github/workflows/spi_release.yml +++ b/.github/workflows/spi_release.yml @@ -42,6 +42,7 @@ jobs: with: java-version: '17' distribution: 'adopt' + # TODO: change this from ossrh to central? server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD @@ -80,6 +81,7 @@ jobs: with: java-version: '17' distribution: 'adopt' + # TODO: change this from ossrh to central? server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD From 0500d7e7066dc36c81f640cafcbc63de8682e395 Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Wed, 27 Aug 2025 17:13:59 -0400 Subject: [PATCH 06/11] Another experimental approach (#11766) --- .../io/gdcc/spi/export/ExportDataOption.java | 50 +++++++++++++++++++ .../gdcc/spi/export/ExportDataProvider.java | 19 +++---- 2 files changed, 57 insertions(+), 12 deletions(-) create mode 100644 modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java new file mode 100644 index 00000000000..1c447cc53e3 --- /dev/null +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java @@ -0,0 +1,50 @@ +package io.gdcc.spi.export; + +/** + * + * @author landreev + * Provides a mechanism for defining various data retrieval options for the + * export subsystem in a way that should allow us adding support for more + * options going forward with minimal or no changes to the existing code in + * export plugins. + */ +public class ExportDataOption { + + public enum SupportedOptions { + DatasetMetadataOnly, + PublicFilesOnly; + } + + private SupportedOptions optionType; + + /*public static ExportDataOption addOption(String option) { + ExportDataOption ret = new ExportDataOption(); + + for (SupportedOptions supported : SupportedOptions.values()) { + if (supported.toString().equals(option)) { + ret.optionType = supported; + } + } + return ret; + }*/ + + public static ExportDataOption addDatasetMetadataOnly() { + ExportDataOption ret = new ExportDataOption(); + ret.optionType = SupportedOptions.DatasetMetadataOnly; + return ret; + } + + public static ExportDataOption addPublicFilesOnly() { + ExportDataOption ret = new ExportDataOption(); + ret.optionType = SupportedOptions.PublicFilesOnly; + return ret; + } + + public boolean isDatasetMetadataOnly() { + return SupportedOptions.DatasetMetadataOnly.equals(optionType); + } + + public boolean isPublicFilesOnly() { + return SupportedOptions.PublicFilesOnly.equals(optionType); + } +} diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java index eefe0d7d828..54d98511d80 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java @@ -38,7 +38,7 @@ public interface ExportDataProvider { * dataset-level metadata along with basic file metadata for each file * in the dataset. */ - JsonObject getDatasetORE(); + JsonObject getDatasetORE(ExportDataOption... options); /** * Dataverse is capable of extracting DDI-centric metadata from tabular @@ -53,7 +53,7 @@ public interface ExportDataProvider { * edu.harvard.iq.dataverse.util.json.JSONPrinter classes where this * output is used/generated (respectively). */ - JsonArray getDatasetFileDetails(); + JsonArray getDatasetFileDetails(ExportDataOption... options); /** * Similar to the above, but @@ -78,7 +78,7 @@ public interface ExportDataProvider { * a starting point for an Exporter if it simplifies your exporter * relative to using the JSON or OAI_ORE exports. */ - JsonObject getDatasetSchemaDotOrg(); + JsonObject getDatasetSchemaDotOrg(ExportDataOption... options); /** * @@ -88,7 +88,7 @@ public interface ExportDataProvider { * a starting point for an Exporter if it simplifies your exporter * relative to using the JSON or OAI_ORE exports. */ - String getDataCiteXml(); + String getDataCiteXml(ExportDataOption... options); /** * If an Exporter has specified a prerequisite format name via the @@ -108,13 +108,8 @@ public interface ExportDataProvider { * Exporter is configured to replace the internal ddi Exporter in * Dataverse. */ - default Optional getPrerequisiteInputStream() { + default Optional getPrerequisiteInputStream(ExportDataOption... options) { return Optional.empty(); } - - public enum ExportDataOption { - DatasetMetadataOnly, - PublicFilesOnly; - } - -} + + } From 75d99d09158c27a7cbf360c52d7a3611cff7809d Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Fri, 29 Aug 2025 13:16:54 -0400 Subject: [PATCH 07/11] another experimental iteration of the updated export data spi. #11766 --- .../io/gdcc/spi/export/ExportDataContext.java | 13 +++++++ .../io/gdcc/spi/export/ExportDataOption.java | 1 + .../gdcc/spi/export/ExportDataProvider.java | 36 +++++++++++-------- .../java/io/gdcc/spi/export/Exporter.java | 14 +++++++- 4 files changed, 49 insertions(+), 15 deletions(-) create mode 100644 modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java new file mode 100644 index 00000000000..8776f2047ba --- /dev/null +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java @@ -0,0 +1,13 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package io.gdcc.spi.export; + +/** + * + * @author landreev + */ +public class ExportDataContext { + +} diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java index 1c447cc53e3..69f813f83ce 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataOption.java @@ -8,6 +8,7 @@ * options going forward with minimal or no changes to the existing code in * export plugins. */ +@Deprecated public class ExportDataOption { public enum SupportedOptions { diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java index 54d98511d80..4197d978e79 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataProvider.java @@ -21,13 +21,14 @@ public interface ExportDataProvider { * OAI_ORE export are the only two that provide 'complete' * dataset-level metadata along with basic file metadata for each file * in the dataset. - * @param options - optional argument(s). needs to support ExportDataOption.DatasetMetadataOnly: - * in a situation where we need to generate a format like DC, - * that has no use for file-level metadata, it makes sense to - * skip retrieving and formatting it, since there can be quite a few + * @param context - supplies optional parameters. Needs to support + * context.isDatasetMetadataOnly(). In a situation where we + * need to generate a format like DC that has no use for the + * file-level metadata, it makes sense to skip retrieving and + * formatting it, since there can be a very large number of * files in a dataset. */ - JsonObject getDatasetJson(ExportDataOption... options); + JsonObject getDatasetJson(ExportDataContext... context); /** * @@ -37,8 +38,9 @@ public interface ExportDataProvider { * @apiNote - THis, and the JSON format are the only two that provide complete * dataset-level metadata along with basic file metadata for each file * in the dataset. + * @param context - supplies optional parameters. */ - JsonObject getDatasetORE(ExportDataOption... options); + JsonObject getDatasetORE(ExportDataContext... context); /** * Dataverse is capable of extracting DDI-centric metadata from tabular @@ -52,8 +54,9 @@ public interface ExportDataProvider { * edu.harvard.iq.dataverse.export.DDIExporter and the @see * edu.harvard.iq.dataverse.util.json.JSONPrinter classes where this * output is used/generated (respectively). + * @param context - supplies optional parameters. */ - JsonArray getDatasetFileDetails(ExportDataOption... options); + JsonArray getDatasetFileDetails(ExportDataContext... context); /** * Similar to the above, but @@ -61,13 +64,15 @@ public interface ExportDataProvider { * b) provides an option for retrieving this stuff in batches * c) provides an option for skipping restricted/embargoed etc. files. * Intended for datasets with massive numbers of tabular files and datavariables. - * @param offset (can be null) - * @param length (can be null) - * @param options (optional) current use case is ExportDataOption.PublicFilesOnly; + * @param context - supplies optional parameters. + * current (2.1.0) known use cases: + * context.isPublicFilesOnly(); + * context.getOffset(); + * context.getLength(); * @return json array containing the datafile/filemetadata->datatable->datavariable metadata * @throws ExportException */ - JsonArray getTabularDataDetails(Integer offset, Integer length, ExportDataOption ... options) throws ExportException; + JsonArray getTabularDataDetails(ExportDataContext ... context) throws ExportException; /** * @@ -77,8 +82,9 @@ public interface ExportDataProvider { * @apiNote - as this metadata export is not complete, it should only be used as * a starting point for an Exporter if it simplifies your exporter * relative to using the JSON or OAI_ORE exports. + * @param context - supplies optional parameters. */ - JsonObject getDatasetSchemaDotOrg(ExportDataOption... options); + JsonObject getDatasetSchemaDotOrg(ExportDataContext... context); /** * @@ -87,8 +93,9 @@ public interface ExportDataProvider { * @apiNote - as this metadata export is not complete, it should only be used as * a starting point for an Exporter if it simplifies your exporter * relative to using the JSON or OAI_ORE exports. + * @param context - supplies optional parameters. */ - String getDataCiteXml(ExportDataOption... options); + String getDataCiteXml(ExportDataContext... context); /** * If an Exporter has specified a prerequisite format name via the @@ -107,8 +114,9 @@ public interface ExportDataProvider { * malfunction, e.g. if you depend on format "ddi" and a third party * Exporter is configured to replace the internal ddi Exporter in * Dataverse. + * @param context - supplies optional parameters. */ - default Optional getPrerequisiteInputStream(ExportDataOption... options) { + default Optional getPrerequisiteInputStream(ExportDataContext... context) { return Optional.empty(); } diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java index 1338a3c9734..f91a2504f74 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java @@ -84,7 +84,19 @@ public interface Exporter { default Optional getPrerequisiteFormatName() { return Optional.empty(); } - + + /** + * Most metadata formats do not require tabular metadata to be generated. + * (the 2 known cases that encode variable-level information, as of Dataverse 6.7, + * are rich DDI and Croissant). In order to serve it more efficiently, + * the data provider may need to be initialized in a special way (with access + * to EJBs that in most cases isn't needed), so it may help to know + * programmatically whether it's required for this format. + * @return Optional + */ + default Optional isNeedsTabularMetadata() { + return Optional.of(false); + } /** * Harvestable Exporters will be available as options in Dataverse's Harvesting mechanism. From cb06d8962863e9d2ffdc279637d92969cc2a1c79 Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Fri, 29 Aug 2025 13:42:31 -0400 Subject: [PATCH 08/11] the new context object (was missing from the previous commit in error) #11766 --- .../io/gdcc/spi/export/ExportDataContext.java | 56 +++++++++++++++++-- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java index 8776f2047ba..9478d39c4c2 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/ExportDataContext.java @@ -1,13 +1,61 @@ -/* - * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license - * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template - */ package io.gdcc.spi.export; /** * * @author landreev + * Provides an optional mechanism for defining various data retrieval options + * for the export subsystem in a way that should allow us adding support for + * more options going forward with minimal or no changes to the already + * implemented export plugins. */ public class ExportDataContext { + private boolean datasetMetadataOnly = false; + private boolean publicFilesOnly = false; + private Integer offset = null; + private Integer length = null; + + private ExportDataContext() { + + } + + public static ExportDataContext context() { + ExportDataContext context = new ExportDataContext(); + return context; + } + + public ExportDataContext withDatasetMetadataOnly() { + this.datasetMetadataOnly = true; + return this; + } + + public ExportDataContext withPublicFilesOnly() { + this.publicFilesOnly = true; + return this; + } + + public ExportDataContext withOffset(Integer offset) { + this.offset = offset; + return this; + } + + public ExportDataContext withLength(Integer length) { + this.length = length; + return this; + } + + public boolean isDatasetMetadataOnly() { + return datasetMetadataOnly; + } + + public boolean isPublicFilesOnly() { + return publicFilesOnly; + } + + public Integer getOffset() { + return offset; + } + public Integer getLength() { + return length; + } } From fdf75cd7a0ed96195a205badb31a6e7ed84233d1 Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Tue, 2 Sep 2025 10:13:57 -0400 Subject: [PATCH 09/11] removing some experimental lines from the Exporter interface #11766 --- .../src/main/java/io/gdcc/spi/export/Exporter.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java index f91a2504f74..7132e74641b 100644 --- a/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java +++ b/modules/dataverse-spi/src/main/java/io/gdcc/spi/export/Exporter.java @@ -84,19 +84,6 @@ public interface Exporter { default Optional getPrerequisiteFormatName() { return Optional.empty(); } - - /** - * Most metadata formats do not require tabular metadata to be generated. - * (the 2 known cases that encode variable-level information, as of Dataverse 6.7, - * are rich DDI and Croissant). In order to serve it more efficiently, - * the data provider may need to be initialized in a special way (with access - * to EJBs that in most cases isn't needed), so it may help to know - * programmatically whether it's required for this format. - * @return Optional - */ - default Optional isNeedsTabularMetadata() { - return Optional.of(false); - } /** * Harvestable Exporters will be available as options in Dataverse's Harvesting mechanism. From 862522eb7cbcc6d70a60d58570760974936fd39d Mon Sep 17 00:00:00 2001 From: Leonid Andreev Date: Tue, 2 Sep 2025 12:46:32 -0400 Subject: [PATCH 10/11] a release note for the dataverse-spi update. #11766 --- doc/release-notes/11766-new-io.gdcc.dataverse-spi.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 doc/release-notes/11766-new-io.gdcc.dataverse-spi.md diff --git a/doc/release-notes/11766-new-io.gdcc.dataverse-spi.md b/doc/release-notes/11766-new-io.gdcc.dataverse-spi.md new file mode 100644 index 00000000000..ef9e68f5719 --- /dev/null +++ b/doc/release-notes/11766-new-io.gdcc.dataverse-spi.md @@ -0,0 +1,2 @@ +The ExportDataProvider framework in the dataverse-spi package has been extended, adding some extra options for developers of metadata exporter plugins. +See the [documentation](https://guides.dataverse.org/en/latest/developers/metadataexport.html#building-an-exporter) in the Metadata Export guide for details. \ No newline at end of file From 97e3803388f21bad388f023e8f716d9b79bca5c3 Mon Sep 17 00:00:00 2001 From: Philip Durbin Date: Thu, 4 Sep 2025 18:57:58 -0400 Subject: [PATCH 11/11] switch from ossrh to central #11766 #11512 --- .github/workflows/spi_release.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/spi_release.yml b/.github/workflows/spi_release.yml index 1d29cdf76c9..098e094902d 100644 --- a/.github/workflows/spi_release.yml +++ b/.github/workflows/spi_release.yml @@ -42,8 +42,7 @@ jobs: with: java-version: '17' distribution: 'adopt' - # TODO: change this from ossrh to central? - server-id: ossrh + server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD - uses: actions/cache@v4 @@ -81,8 +80,7 @@ jobs: with: java-version: '17' distribution: 'adopt' - # TODO: change this from ossrh to central? - server-id: ossrh + server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD gpg-private-key: ${{ secrets.DATAVERSEBOT_GPG_KEY }}