Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
c9f728b
add checksum URI values and methods
qqmyers Dec 6, 2025
a25e47b
update version and use checksum URIs
qqmyers Dec 6, 2025
6c0cb49
handle multiline descriptions and org names
qqmyers Dec 6, 2025
7a34db8
drop blank lines in multiline values
qqmyers Dec 9, 2025
b0daad7
remove title as a folder
qqmyers Dec 9, 2025
e5457a8
handle null deaccession reason
qqmyers Dec 9, 2025
10b0556
use static to simplify testing
qqmyers Dec 10, 2025
d6cf1e2
Merge remote-tracking branch 'IQSS/develop' into OREBag1.0.2
qqmyers Dec 10, 2025
6d24185
Sanitize/split multiline catalog entry, add Dataverse-Bag-Version
qqmyers Dec 10, 2025
c4daf28
Added unit tests for multilineWrap
janvanmansum Dec 11, 2025
e76bc91
Removed unnecessary repeat helper method
janvanmansum Dec 11, 2025
108c912
Alined test names with actual test being done
janvanmansum Dec 11, 2025
62ea9d9
Merge pull request #48 from janvanmansum/OREBag1.0.2-amend
qqmyers Dec 11, 2025
884b81b
DD-2098 - allow archivalstatus calls on deaccessioned versions
qqmyers Dec 16, 2025
5e4e90a
Merge remote-tracking branch 'IQSS/develop' into OREBag1.0.2
qqmyers Dec 16, 2025
3076d69
set array properly
qqmyers Dec 17, 2025
cbdc15f
Merge remote-tracking branch 'IQSS/develop' into OREBag1.0.2
qqmyers Dec 19, 2025
1a7dafa
DD-2212 - use configured checksum when no files are present
qqmyers Dec 19, 2025
7eea57c
Revert "DD-2098 - allow archivalstatus calls on deaccessioned versions"
qqmyers Dec 19, 2025
2477cf9
add Source-Org as a potential multiline case, remove change to Int Id
qqmyers Dec 19, 2025
3f3908f
release note
qqmyers Dec 19, 2025
aa44c08
use constants, pass labelLength to wrapping, start custom lineWrap
qqmyers Dec 19, 2025
8227edf
update to handle overall 79 char length
qqmyers Dec 19, 2025
d0749fc
wrap any other potentially long values
qqmyers Dec 19, 2025
24a625f
cleanup deprecated code, auto-gen comments
qqmyers Dec 19, 2025
bf036f3
update comment
qqmyers Dec 22, 2025
be65611
add tests
qqmyers Dec 22, 2025
2516cf4
Merge remote-tracking branch 'IQSS/develop' into OREBag1.0.2
qqmyers Dec 22, 2025
24d098a
QDR updates to apache 5, better fault tolerance for file retrieval
qqmyers Dec 22, 2025
b4a3799
release note update
qqmyers Dec 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions doc/release-notes/12063-ORE-and-Bag-updates.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
This release contains multiple updates to the OAI-ORE metadata export and archival Bag output:

OAI-ORE
- now uses URI for checksum algorithms
- a bug causing failures with deaccessioned versions when the deaccession note ("Deaccession Reason" in the UI) was null (which has been allowed via the API).
- the "https://schema.org/additionalType" is updated to "Dataverse OREMap Format v1.0.2" to indicate that the out has changed

Archival Bag
- for dataset versions with no files, the (empty) manifest-<alg>.txt file created will now use the default algorithm defined by the "FileFixityChecksumAlgorithm" setting rather than always defaulting to "md5"
- a bug causing the bag-info.txt to not have information on contacts when the dataset version has more than one contact has been fixed
- values used in the bag-info.txt file that may be multi-line (with embedded CR or LF characters) are now properly indented/formatted per the BagIt specification (i.e. Internal-Sender-Identifier, External-Description, Source-Organization, Organization-Address).
- the name of the dataset is no longer used as a subdirectory under the data directory (dataset names can be long enough to cause failures when unzipping)
- a new key, "Dataverse-Bag-Version" has been added to bag-info.txt with a value "1.0", allowing tracking of changes to Dataverse's arhival bag generation
- improvements to file retrieval w.r.t. retries on errors or throttling
33 changes: 27 additions & 6 deletions src/main/java/edu/harvard/iq/dataverse/DataFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -109,18 +109,22 @@ public class DataFile extends DvObject implements Comparable {
* The list of types should be limited to the list above in the technote
* because the string gets passed into MessageDigest.getInstance() and you
* can't just pass in any old string.
*
* The URIs are used in the OAI_ORE export. They are taken from the associated XML Digital Signature standards.
*/
public enum ChecksumType {

MD5("MD5"),
SHA1("SHA-1"),
SHA256("SHA-256"),
SHA512("SHA-512");
MD5("MD5", "http://www.w3.org/2001/04/xmldsig-more#md5"),
SHA1("SHA-1", "http://www.w3.org/2000/09/xmldsig#sha1"),
SHA256("SHA-256", "http://www.w3.org/2001/04/xmlenc#sha256"),
SHA512("SHA-512", "http://www.w3.org/2001/04/xmlenc#sha512");

private final String text;
private final String uri;

private ChecksumType(final String text) {
private ChecksumType(final String text, final String uri) {
this.text = text;
this.uri = uri;
}

public static ChecksumType fromString(String text) {
Expand All @@ -131,13 +135,30 @@ public static ChecksumType fromString(String text) {
}
}
}
throw new IllegalArgumentException("ChecksumType must be one of these values: " + Arrays.asList(ChecksumType.values()) + ".");
throw new IllegalArgumentException(
"ChecksumType must be one of these values: " + Arrays.asList(ChecksumType.values()) + ".");
}

public static ChecksumType fromUri(String uri) {
if (uri != null) {
for (ChecksumType checksumType : ChecksumType.values()) {
if (uri.equals(checksumType.uri)) {
return checksumType;
}
}
}
throw new IllegalArgumentException(
"ChecksumType must be one of these values: " + Arrays.asList(ChecksumType.values()) + ".");
}

@Override
public String toString() {
return text;
}

public String toUri() {
return uri;
}
}

//@Expose
Expand Down
Loading
Loading