workflowComments = datasetVersion.getWorkflowComments();
for (WorkflowComment workflowComment : workflowComments) {
NullSafeJsonBuilder workflowCommentAsJson = jsonObjectBuilder();
diff --git a/src/main/webapp/file.xhtml b/src/main/webapp/file.xhtml
index 50133aefa17..73379009456 100644
--- a/src/main/webapp/file.xhtml
+++ b/src/main/webapp/file.xhtml
@@ -567,7 +567,7 @@
|
#{bundle['file.metadataTab.fileMetadata.publicationDate.label']}
|
- #{(empty FilePage.file.embargo) and !(empty FilePage.file.released) and !(empty FilePage.file.retention) ? ''.concat(FilePage.file.publicationDateFormattedYYYYMMDD).concat('; ') : ''}
+ | #{(empty FilePage.file.embargo) and FilePage.file.released and !(empty FilePage.file.retention) ? ''.concat(FilePage.file.publicationDateFormattedYYYYMMDD).concat('; ') : ''}
#{!(empty FilePage.file.embargo) ? ''.concat(FilePage.embargoPhrase).concat(' ').concat(FilePage.file.embargo.dateAvailable) : ''}
#{!(empty FilePage.file.embargo) and !(empty FilePage.file.retention) ? '; ': ''}
#{!(empty FilePage.file.retention) ? ''.concat(FilePage.retentionPhrase)
diff --git a/src/main/webapp/guestbook-terms-popup-fragment.xhtml b/src/main/webapp/guestbook-terms-popup-fragment.xhtml
index a17145a43ce..14e8fb551a6 100644
--- a/src/main/webapp/guestbook-terms-popup-fragment.xhtml
+++ b/src/main/webapp/guestbook-terms-popup-fragment.xhtml
@@ -232,7 +232,7 @@
diff --git a/checkstyle.xml b/src/maven/checkstyle.xml
similarity index 100%
rename from checkstyle.xml
rename to src/maven/checkstyle.xml
diff --git a/src/maven/forbiddenapis.txt b/src/maven/forbiddenapis.txt
new file mode 100644
index 00000000000..a092d1f0a6b
--- /dev/null
+++ b/src/maven/forbiddenapis.txt
@@ -0,0 +1,18 @@
+@defaultMessage Use edu.harvard.iq.dataverse.util.json.JsonUtil.createArrayBuilder(...) instead
+jakarta.json.Json#createArrayBuilder()
+jakarta.json.Json#createArrayBuilder(java.util.Collection)
+jakarta.json.Json#createArrayBuilder(jakarta.json.JsonArray)
+
+@defaultMessage Use edu.harvard.iq.dataverse.util.json.JsonUtil.createObjectBuilder(...) instead
+jakarta.json.Json#createObjectBuilder()
+jakarta.json.Json#createObjectBuilder(java.util.Map)
+jakarta.json.Json#createObjectBuilder(jakarta.json.JsonObject)
+
+@defaultMessage Use edu.harvard.iq.dataverse.util.json.JsonUtil.createValue(...) instead
+jakarta.json.Json#createValue(double)
+jakarta.json.Json#createValue(int)
+jakarta.json.Json#createValue(long)
+jakarta.json.Json#createValue(java.lang.Number)
+jakarta.json.Json#createValue(java.lang.String)
+jakarta.json.Json#createValue(java.math.BigDecimal)
+jakarta.json.Json#createValue(java.math.BigInteger)
\ No newline at end of file
diff --git a/src/test/java/edu/harvard/iq/dataverse/DatasetFieldServiceBeanTest.java b/src/test/java/edu/harvard/iq/dataverse/DatasetFieldServiceBeanTest.java
index 8e6fc76c134..5ca7dc584b8 100644
--- a/src/test/java/edu/harvard/iq/dataverse/DatasetFieldServiceBeanTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/DatasetFieldServiceBeanTest.java
@@ -12,6 +12,7 @@
import java.util.Collections;
import java.util.Set;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -51,28 +52,28 @@ void getIndexableStringsByTermUriSkosmos() throws IOException {
JsonObject cvocEntry = prepare(fieldName, "src/test/resources/json/cvoc-skosmos.json");
- JsonObject getExtVocabValueReturnedValue = Json.createObjectBuilder()
+ JsonObject getExtVocabValueReturnedValue = JsonUtil.createObjectBuilder()
.add("@id", termURI)
- .add("termName", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("termName", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("lang", "fr")
.add("value", "faux bourdon"))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("lang", "en")
.add("value", "drone (insects)")))
.add("vocabularyUri", "http://aims.fao.org/aos/agrovoc")
- .add("synonyms", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("synonyms", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("lang", "fr")
.add("value", "Abeille mâle"))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("lang", "en")
.add("value", "drone honey bees")))
- .add("genericTerm", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("genericTerm", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("lang", "fr")
.add("value", "Colonie d'abeilles"))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("lang", "en")
.add("value", "bee colonies")))
.build();
@@ -103,15 +104,15 @@ void getIndexableStringsByTermUriAgroportal() throws IOException {
JsonObject cvocEntry = prepare(fieldName, "src/test/resources/json/cvoc-agroportal.json");
- JsonObject getExtVocabValueReturnedValue = Json.createObjectBuilder()
+ JsonObject getExtVocabValueReturnedValue = JsonUtil.createObjectBuilder()
.add("@id", termURI)
- .add("termName", Json.createObjectBuilder()
+ .add("termName", JsonUtil.createObjectBuilder()
.add("fr", "association de quartier")
.add("en", "neighborhood associations"))
.add("vocabularyName", "https://data.agroportal.lirmm.fr/ontologies/AGROVOC")
.add("vocabularyUri", "https://data.agroportal.lirmm.fr/ontologies/AGROVOC")
- .add("synonyms", Json.createObjectBuilder()
- .add("en", Json.createArrayBuilder().add("neighborhood societies")))
+ .add("synonyms", JsonUtil.createObjectBuilder()
+ .add("en", JsonUtil.createArrayBuilder().add("neighborhood societies")))
.build();
Mockito.doReturn(getExtVocabValueReturnedValue).when(datasetFieldServiceBean).getExternalVocabularyValue(termURI);
Mockito.doReturn(null).when(datasetFieldServiceBean).getExternalVocabularyValue(AdditionalMatchers.not(Mockito.eq(termURI)));
@@ -140,7 +141,7 @@ void getIndexableStringsByTermUriOrcid() throws IOException {
JsonObject cvocEntry = prepare(fieldName, "src/test/resources/json/cvoc-orcid.json");
- JsonObject getExtVocabValueReturnedValue = Json.createObjectBuilder()
+ JsonObject getExtVocabValueReturnedValue = JsonUtil.createObjectBuilder()
.add("@id", termURI)
.add("scheme", "ORCID")
.add("@type", "https://schema.org/Person")
@@ -166,12 +167,12 @@ public void testProcessPathSegmentWithArrayStringMatching() {
String termUri = "http://example.org/term/123";
// Create a JSON structure with an array containing string values
- JsonArrayBuilder tagsArrayBuilder = Json.createArrayBuilder();
- JsonObject testObject = Json.createObjectBuilder().add("tag", Json.createArrayBuilder().add("research").add("science")).add("name", "one").build();
+ JsonArrayBuilder tagsArrayBuilder = JsonUtil.createArrayBuilder();
+ JsonObject testObject = JsonUtil.createObjectBuilder().add("tag", JsonUtil.createArrayBuilder().add("research").add("science")).add("name", "one").build();
tagsArrayBuilder.add(testObject);
- JsonObject testObject2 = Json.createObjectBuilder().add("tag", "art").add("name", "two").build();
+ JsonObject testObject2 = JsonUtil.createObjectBuilder().add("tag", "art").add("name", "two").build();
tagsArrayBuilder.add(testObject2);
- JsonObject testObject3 = Json.createObjectBuilder().add("tag", termUri).add("name", "three").build();
+ JsonObject testObject3 = JsonUtil.createObjectBuilder().add("tag", termUri).add("name", "three").build();
tagsArrayBuilder.add(testObject3);
JsonArray tags = tagsArrayBuilder.build();
diff --git a/src/test/java/edu/harvard/iq/dataverse/DatasetVersionDifferenceTest.java b/src/test/java/edu/harvard/iq/dataverse/DatasetVersionDifferenceTest.java
index 4ca4a984c2a..bbe303b470a 100644
--- a/src/test/java/edu/harvard/iq/dataverse/DatasetVersionDifferenceTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/DatasetVersionDifferenceTest.java
@@ -77,7 +77,7 @@ public void testDifferencing() {
datasetVersion2.setTermsOfUseAndAccess(new TermsOfUseAndAccess());
datasetVersion2.getTermsOfUseAndAccess().setLicense(license);
datasetVersion.setFileMetadatas(new ArrayList<>());
-
+
// Published version's two files
DataFile dataFile = new DataFile();
dataFile.setId(1L);
@@ -91,7 +91,7 @@ public void testDifferencing() {
List fileMetadatas = new ArrayList<>(Arrays.asList(fileMetadata1, fileMetadata2));
datasetVersion.setFileMetadatas(fileMetadatas);
-
+
// Draft version - same two files with one label change
FileMetadata fileMetadata3 = fileMetadata1.createCopyInVersion(datasetVersion2);
fileMetadata3.setId(30L);
@@ -184,37 +184,43 @@ public void testDifferencing() {
// Set a term field
- datasetVersion2.getTermsOfUseAndAccess().setTermsOfUse("Terms o' Use");
+ datasetVersion2.getTermsOfUseAndAccess().setTermsOfAccess("Terms o' Access");
String[] termField = new String[] {
- BundleUtil.getStringFromBundle("file.dataFilesTab.terms.list.termsOfUse.header"), "", "Terms o' Use" };
+ BundleUtil.getStringFromBundle("file.dataFilesTab.terms.list.termsOfAccess.termsOfsAccess"), "", "Terms o' Access" };
changedTerms.add(termField);
compareResults(datasetVersion, datasetVersion2, expectedAddedFiles, expectedRemovedFiles,
expectedChangedFileMetadata, expectedChangedVariableMetadata, expectedReplacedFiles, changedTerms);
- // Set a term field in the original version
-
+ // Set a term field in the original version that will also remove the license
+ changedTerms = new ArrayList<>();
datasetVersion.getTermsOfUseAndAccess().setDisclaimer("Not our fault");
String[] termField2 = new String[] {
BundleUtil.getStringFromBundle("file.dataFilesTab.terms.list.termsOfUse.addInfo.disclaimer"),
"Not our fault", "" };
+
+ String[] termField3 = new String[] {
+ BundleUtil.getStringFromBundle("file.dataFilesTab.terms.list.license"),
+ BundleUtil.getStringFromBundle("license.none.chosen"), license.getName() };
+ changedTerms.add(termField3);
changedTerms.add(termField2);
+ changedTerms.add(termField);
compareResults(datasetVersion, datasetVersion2, expectedAddedFiles, expectedRemovedFiles,
expectedChangedFileMetadata, expectedChangedVariableMetadata, expectedReplacedFiles, changedTerms);
-
- // Change License in Draft version
+
+ // Change License in Draft version (from no license), which resets Disclaimer to null, but leaves termsOfAccess alone
datasetVersion2.getTermsOfUseAndAccess().setLicense(license2);
- datasetVersion2.getTermsOfUseAndAccess().setTermsOfUse("");
- datasetVersion.getTermsOfUseAndAccess().setDisclaimer("");
-
- String[] termField3 = new String[] {
+
+ String[] termField4 = new String[] {
BundleUtil.getStringFromBundle("file.dataFilesTab.terms.list.license"),
- "CC0 1.0", "CC BY 4.0" };
+ BundleUtil.getStringFromBundle("license.none.chosen"), license2.getName() };
changedTerms = new ArrayList<>();
- changedTerms.add(termField3);
-
+ changedTerms.add(termField4);
+ changedTerms.add(termField2);
+ changedTerms.add(termField);
+
compareResults(datasetVersion, datasetVersion2, expectedAddedFiles, expectedRemovedFiles,
expectedChangedFileMetadata, expectedChangedVariableMetadata, expectedReplacedFiles, changedTerms);
@@ -238,7 +244,7 @@ private FileMetadata createFileMetadata(long id, DatasetVersion datasetVersion,
* correct (i.e. the manually created expected* parameters are set correctly for
* each use case), we could drop running the originalCalculateDifference method
* and just compare with the expected* results.
- *
+ *
* @param changedTerms
*/
private void compareResults(DatasetVersion datasetVersion, DatasetVersion datasetVersion2,
@@ -425,10 +431,10 @@ public void testCompareVersionsAsJson() {
assertTrue("true".equalsIgnoreCase(dataFile.getString("fileChanges[0].changed[0].newValue")));
assertTrue("disclaimer".equalsIgnoreCase(dataFile.getString("TermsOfAccess.changed[0].newValue")));
}
-
+
@Test
public void testGetSummaryAsJson(){
-
+
Dataverse dv = new Dataverse();
Dataset ds = new Dataset();
ds.setOwner(dv);
@@ -462,23 +468,23 @@ public void testGetSummaryAsJson(){
dv2.getFileMetadatas().remove(1);
DatasetVersionDifference dvd = dv2.getDefaultVersionDifference();
-
+
JsonObjectBuilder json = dvd.getSummaryDifferenceAsJson();
JsonObject obj = json.build();
JsonPath dataFile = JsonPath.from(JsonUtil.prettyPrint(obj));
-
+
assertTrue("true".equalsIgnoreCase(dataFile.getString("termsAccessChanged")));
assertEquals(1,(Long.parseLong(dataFile.getString("files.changedFileMetaData"))));
assertEquals(0,(Long.parseLong(dataFile.getString("testMetadataBlock.deleted"))));
assertEquals(1, (int) (Long.parseLong(dataFile.getString("testMetadataBlock.added"))));
assertEquals(1,(Long.parseLong(dataFile.getString("files.added"))));
-
+
}
-
-
+
+
private DatasetVersion initDatasetVersion(Long id, Dataset ds, DatasetVersion.VersionState vs) {
DatasetVersion dv = new DatasetVersion();
dv.setDataset(ds);
diff --git a/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java b/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java
index fe2bca1a109..00f79d1bffd 100644
--- a/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/DatasetVersionTest.java
@@ -127,7 +127,7 @@ public void testGetJsonLd() throws ParseException {
// TODO: if it ever becomes easier to mock a dataset title, test it.
assertEquals("", obj.getString("name"));
// TODO: If it ever becomes easier to mock authors, test them.
- JsonArray emptyArray = Json.createArrayBuilder().build();
+ JsonArray emptyArray = JsonUtil.createArrayBuilder().build();
assertEquals(emptyArray, obj.getJsonArray("creator"));
assertEquals(emptyArray, obj.getJsonArray("author"));
// TODO: If it ever becomes easier to mock subjects, test them.
@@ -181,7 +181,7 @@ public void testGetJsonLdNonCC0License() throws ParseException {
// TODO: if it ever becomes easier to mock a dataset title, test it.
assertEquals("", obj.getString("name"));
// TODO: If it ever becomes easier to mock authors, test them.
- JsonArray emptyArray = Json.createArrayBuilder().build();
+ JsonArray emptyArray = JsonUtil.createArrayBuilder().build();
assertEquals(emptyArray, obj.getJsonArray("creator"));
assertEquals(emptyArray, obj.getJsonArray("author"));
// TODO: If it ever becomes easier to mock subjects, test them.
diff --git a/src/test/java/edu/harvard/iq/dataverse/TermsOfUseAndAccessTest.java b/src/test/java/edu/harvard/iq/dataverse/TermsOfUseAndAccessTest.java
new file mode 100644
index 00000000000..cb542db4b3c
--- /dev/null
+++ b/src/test/java/edu/harvard/iq/dataverse/TermsOfUseAndAccessTest.java
@@ -0,0 +1,54 @@
+package edu.harvard.iq.dataverse;
+
+import org.junit.jupiter.api.Test;
+import edu.harvard.iq.dataverse.license.License;
+import static org.junit.jupiter.api.Assertions.*;
+
+public class TermsOfUseAndAccessTest {
+
+ @Test
+ public void testLicenseAndTermsMutualExclusivity() {
+ License license = new License();
+ license.setName("CC0");
+
+ TermsOfUseAndAccess terms = new TermsOfUseAndAccess();
+
+ // 1. Setting license should clear terms
+ terms.setTermsOfUse("Some terms");
+ assertEquals("Some terms", terms.getTermsOfUse());
+ assertNull(terms.getLicense());
+
+ terms.setLicense(license);
+ assertNull(terms.getTermsOfUse());
+ assertEquals(license, terms.getLicense());
+
+ // 2. Setting terms should clear license
+ terms.setTermsOfUse("New terms");
+ assertNull(terms.getLicense());
+ assertEquals("New terms", terms.getTermsOfUse());
+
+ // 3. Test other fields clear license too
+ terms.setLicense(license);
+ terms.setConfidentialityDeclaration("Confidential");
+ assertNull(terms.getLicense());
+ assertEquals("Confidential", terms.getConfidentialityDeclaration());
+ }
+
+ @Test
+ public void testCopyTermsOfUseAndAccess() {
+ License license = new License();
+ license.setName("CC0");
+
+ TermsOfUseAndAccess terms = new TermsOfUseAndAccess();
+ terms.setLicense(license);
+
+ TermsOfUseAndAccess copy = terms.copyTermsOfUseAndAccess();
+ assertEquals(license, copy.getLicense());
+ assertNull(copy.getTermsOfUse());
+
+ terms.setTermsOfUse("Some terms");
+ TermsOfUseAndAccess copy2 = terms.copyTermsOfUseAndAccess();
+ assertNull(copy2.getLicense());
+ assertEquals("Some terms", copy2.getTermsOfUse());
+ }
+}
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/AbstractApiBeanTest.java b/src/test/java/edu/harvard/iq/dataverse/api/AbstractApiBeanTest.java
index df24f591328..47a4742a400 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/AbstractApiBeanTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/AbstractApiBeanTest.java
@@ -8,6 +8,7 @@
import edu.harvard.iq.dataverse.settings.FeatureFlags;
import edu.harvard.iq.dataverse.settings.JvmSettings;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import edu.harvard.iq.dataverse.util.testing.FeatureFlag;
import edu.harvard.iq.dataverse.util.testing.JvmSetting;
import edu.harvard.iq.dataverse.util.testing.LocalFeatureFlags;
@@ -93,7 +94,7 @@ void testUnifiedMessageStyle() {
@Test
void testMessageAndDataDefaultStyle() {
String message = "myMessage";
- Response response = sut.ok(message, Json.createObjectBuilder().add("test", "value"));
+ Response response = sut.ok(message, JsonUtil.createObjectBuilder().add("test", "value"));
JsonReader jsonReader = Json.createReader(new StringReader(response.getEntity().toString()));
JsonObject jsonObject = jsonReader.readObject();
@@ -106,7 +107,7 @@ void testMessageAndDataDefaultStyle() {
@JvmSetting(key = JvmSettings.LEGACY_API_RESPONSE_MESSAGE_STYLE, value = "true")
void testMessageAndDataLegacyStyle() {
String message = "myMessage";
- Response response = sut.ok(message, Json.createObjectBuilder().add("test", "value"));
+ Response response = sut.ok(message, JsonUtil.createObjectBuilder().add("test", "value"));
JsonReader jsonReader = Json.createReader(new StringReader(response.getEntity().toString()));
JsonObject jsonObject = jsonReader.readObject();
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/AdminIT.java b/src/test/java/edu/harvard/iq/dataverse/api/AdminIT.java
index 66de98306b8..c993d67f2e2 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/AdminIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/AdminIT.java
@@ -5,6 +5,7 @@
import edu.harvard.iq.dataverse.authorization.providers.oauth2.impl.GitHubOAuth2AP;
import edu.harvard.iq.dataverse.authorization.providers.oauth2.impl.OrcidOAuth2AP;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -1081,7 +1082,7 @@ public void testFindMissingFiles() {
// Audit files
Response resp = UtilIT.auditFiles(apiToken, null, 100L, null);
resp.prettyPrint();
- JsonArray emptyArray = Json.createArrayBuilder().build();
+ JsonArray emptyArray = JsonUtil.createArrayBuilder().build();
resp.then().assertThat()
.statusCode(OK.getStatusCode())
.body("data.lastId", equalTo(100));
@@ -1134,7 +1135,7 @@ public void testAddAuthProviders() {
getAuthProviders.prettyPrint();
String factoryData = String.format("type: oidc | issuer: http://keycloak.mydomain.com:8090/realms/test | clientId: %s | clientSecret: %s", clientId, clientSecret);
- JsonObject jsonObject = Json.createObjectBuilder()
+ JsonObject jsonObject = JsonUtil.createObjectBuilder()
.add("id", "oidc1")
.add("factoryAlias", "oidc")
.add("title", "Open ID Connect SPA")
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/BuiltinUsersIT.java b/src/test/java/edu/harvard/iq/dataverse/api/BuiltinUsersIT.java
index 3fa15657483..121e9f5acca 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/BuiltinUsersIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/BuiltinUsersIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import static io.restassured.RestAssured.given;
import io.restassured.http.ContentType;
@@ -405,7 +406,7 @@ private static String getRandomUsername() {
}
private static String getUserAsJsonString(String username, String firstName, String lastName, String email) {
- JsonObjectBuilder builder = Json.createObjectBuilder();
+ JsonObjectBuilder builder = JsonUtil.createObjectBuilder();
builder.add(usernameKey, username);
builder.add("firstName", firstName);
builder.add("lastName", lastName);
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/DatasetTypesIT.java b/src/test/java/edu/harvard/iq/dataverse/api/DatasetTypesIT.java
index dc246b77a47..3235ad5b941 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/DatasetTypesIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/DatasetTypesIT.java
@@ -74,7 +74,7 @@ private static void ensureDatasetTypeIsPresent(String datasetType, String descri
}
System.out.println("The " + datasetType + "type wasn't found. Create it.");
String displayName = capitalize(datasetType);
- String jsonIn = Json.createObjectBuilder()
+ String jsonIn = JsonUtil.createObjectBuilder()
.add("name", datasetType)
.add("displayName", displayName)
.add("description", description)
@@ -304,7 +304,7 @@ public void testAddAndDeleteDatasetType() {
badJson.prettyPrint();
badJson.then().assertThat().statusCode(BAD_REQUEST.getStatusCode());
- String numbersOnlyIn = Json.createObjectBuilder().add("name", "12345").build().toString();
+ String numbersOnlyIn = JsonUtil.createObjectBuilder().add("name", "12345").build().toString();
Response numbersOnly = UtilIT.addDatasetType(numbersOnlyIn, apiToken);
numbersOnly.prettyPrint();
numbersOnly.then().assertThat().statusCode(BAD_REQUEST.getStatusCode());
@@ -312,7 +312,7 @@ public void testAddAndDeleteDatasetType() {
//Avoid all-numeric names (which are not allowed)
String randomName = "A" + UUID.randomUUID().toString().substring(0, 8);
String displayName = capitalize(randomName);
- String jsonIn = Json.createObjectBuilder()
+ String jsonIn = JsonUtil.createObjectBuilder()
.add("name", randomName)
.add("displayName", displayName)
.build().toString();
@@ -355,11 +355,11 @@ public void testAddDatasetTypeWithMDBLicense(){
String apiToken = UtilIT.getApiTokenFromResponse(createUser);
UtilIT.setSuperuserStatus(username, true).then().assertThat().statusCode(OK.getStatusCode());
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("name", "testDatasetType");
job.add("displayName", "testDatasetType");
- job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatial"));
- job.add("availableLicenses", Json.createArrayBuilder().add("CC0 1.0"));
+ job.add("linkedMetadataBlocks", JsonUtil.createArrayBuilder().add("geospatial"));
+ job.add("availableLicenses", JsonUtil.createArrayBuilder().add("CC0 1.0"));
Response typeAdded = UtilIT.addDatasetType(job.build(), apiToken);
typeAdded.prettyPrint();
@@ -379,10 +379,10 @@ public void testAddDatasetTypeWithMDBLicense(){
typeDeleted.then().assertThat().statusCode(OK.getStatusCode());
//bad metadatablock name
- job = Json.createObjectBuilder();
+ job = JsonUtil.createObjectBuilder();
job.add("name", "testDatasetType");
- job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatialXXX"));
- job.add("availableLicenses", Json.createArrayBuilder().add("CC0 1.0"));
+ job.add("linkedMetadataBlocks", JsonUtil.createArrayBuilder().add("geospatialXXX"));
+ job.add("availableLicenses", JsonUtil.createArrayBuilder().add("CC0 1.0"));
typeAdded = UtilIT.addDatasetType(job.build(), apiToken);
typeAdded.prettyPrint();
@@ -391,10 +391,10 @@ public void testAddDatasetTypeWithMDBLicense(){
.statusCode(BAD_REQUEST.getStatusCode())
.body("message", containsString("Metadata block not found:"));
- job = Json.createObjectBuilder();
+ job = JsonUtil.createObjectBuilder();
job.add("name", "testDatasetType");
- job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatial"));
- job.add("availableLicenses", Json.createArrayBuilder().add("CC0 12.0"));
+ job.add("linkedMetadataBlocks", JsonUtil.createArrayBuilder().add("geospatial"));
+ job.add("availableLicenses", JsonUtil.createArrayBuilder().add("CC0 12.0"));
typeAdded = UtilIT.addDatasetType(job.build(), apiToken);
typeAdded.prettyPrint();
@@ -413,7 +413,7 @@ public void testUpdateDatasetTypeWithLicense(){
String apiToken = UtilIT.getApiTokenFromResponse(createUser);
UtilIT.setSuperuserStatus(username, true).then().assertThat().statusCode(OK.getStatusCode());
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("name", "testDatasetType");
job.add("displayName", "testDatasetType");
@@ -485,7 +485,7 @@ public void testUpdateDatasetTypeLinksWithMetadataBlocks() {
//Avoid all-numeric names (which are not allowed)
String randomName = "zzz" + UUID.randomUUID().toString().substring(0, 8);
String displayName = capitalize(randomName);
- String jsonIn = Json.createObjectBuilder()
+ String jsonIn = JsonUtil.createObjectBuilder()
.add("name", randomName)
.add("displayName", displayName)
.build().toString();
@@ -721,11 +721,11 @@ public void testCreateDatasetWithCustomType() {
UtilIT.setSuperuserStatus(username, true).then().assertThat().statusCode(OK.getStatusCode());
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("name", "testDatasetType");
job.add("displayName", "testDatasetType");
- job.add("linkedMetadataBlocks", Json.createArrayBuilder().add("geospatial"));
- job.add("availableLicenses", Json.createArrayBuilder().add("CC0 1.0"));
+ job.add("linkedMetadataBlocks", JsonUtil.createArrayBuilder().add("geospatial"));
+ job.add("availableLicenses", JsonUtil.createArrayBuilder().add("CC0 1.0"));
Response typeAdded = UtilIT.addDatasetType(job.build(), apiToken);
typeAdded.prettyPrint();
@@ -911,31 +911,31 @@ public void testCreateReview() {
* See also discussion at
* https://dataverse.zulipchat.com/#narrow/channel/379673-dev/topic/Improved.20.22Related.20datasets.22/near/534969036
*/
- JsonObjectBuilder jsonForCreatingReview = Json.createObjectBuilder()
+ JsonObjectBuilder jsonForCreatingReview = JsonUtil.createObjectBuilder()
/**
* See above where this type is added to the installation and
* therefore available for use.
*/
.add("datasetType", DatasetType.DATASET_TYPE_REVIEW)
- .add("datasetVersion", Json.createObjectBuilder()
- .add("license", Json.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("license", JsonUtil.createObjectBuilder()
.add("name", "CC0 1.0")
.add("uri", "http://creativecommons.org/publicdomain/zero/1.0")
)
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", "Review of " + datasetTitle)
.add("typeClass", "primitive")
.add("multiple", false)
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Simpson, Homer")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -946,11 +946,11 @@ public void testCreateReview() {
.add("multiple", true)
.add("typeName", "author")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "hsimpson@mailinator.com")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -961,11 +961,11 @@ public void testCreateReview() {
.add("multiple", true)
.add("typeName", "datasetContact")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "This is a review of a dataset.")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -976,16 +976,16 @@ public void testCreateReview() {
.add("multiple", true)
.add("typeName", "dsDescription")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Other")
)
.add("typeClass", "controlledVocabulary")
.add("multiple", true)
.add("typeName", "subject")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add(datasetCitationHtml)
)
.add("typeClass", "primitive")
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/DatasetsEmbargoAPITest.java b/src/test/java/edu/harvard/iq/dataverse/api/DatasetsEmbargoAPITest.java
index 64318e2e223..d425236b14f 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/DatasetsEmbargoAPITest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/DatasetsEmbargoAPITest.java
@@ -15,6 +15,7 @@
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
import edu.harvard.iq.dataverse.settings.JvmSettings;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import edu.harvard.iq.dataverse.util.testing.JvmSetting;
import edu.harvard.iq.dataverse.util.testing.LocalJvmSettings;
import jakarta.json.Json;
@@ -129,9 +130,9 @@ public void setUp() {
public void testCreateFileEmbargo_withReasonRequired_shouldRejectNullReason() {
// Arrange
LocalDate futureDate = LocalDate.now().plusMonths(6);
- JsonObjectBuilder embargoJson = Json.createObjectBuilder()
+ JsonObjectBuilder embargoJson = JsonUtil.createObjectBuilder()
.add("dateAvailable", futureDate.toString())
- .add("fileIds", Json.createArrayBuilder().add(1L));
+ .add("fileIds", JsonUtil.createArrayBuilder().add(1L));
// Act
Response response = datasetsApi.createFileEmbargo(crc, "1", embargoJson.build().toString());
@@ -154,10 +155,10 @@ public void testCreateFileEmbargo_withReasonRequired_shouldRejectNullReason() {
public void testCreateFileEmbargo_withReasonRequired_shouldAcceptValidReason() throws CommandException {
// Arrange
LocalDate futureDate = LocalDate.now().plusMonths(6);
- JsonObjectBuilder embargoJson = Json.createObjectBuilder()
+ JsonObjectBuilder embargoJson = JsonUtil.createObjectBuilder()
.add("dateAvailable", futureDate.toString())
.add("reason", "Valid embargo reason for testing")
- .add("fileIds", Json.createArrayBuilder().add(2L));
+ .add("fileIds", JsonUtil.createArrayBuilder().add(2L));
// Act
Response response = datasetsApi.createFileEmbargo(crc, "1", embargoJson.build().toString());
@@ -171,9 +172,9 @@ public void testCreateFileEmbargo_withReasonRequired_shouldAcceptValidReason() t
public void testCreateFileEmbargo_withReasonNotRequired_shouldAcceptNullReason() throws CommandException {
// Arrange
LocalDate futureDate = LocalDate.now().plusMonths(6);
- JsonObjectBuilder embargoJson = Json.createObjectBuilder()
+ JsonObjectBuilder embargoJson = JsonUtil.createObjectBuilder()
.add("dateAvailable", futureDate.toString())
- .add("fileIds", Json.createArrayBuilder().add(2L));
+ .add("fileIds", JsonUtil.createArrayBuilder().add(2L));
// Act
Response response = datasetsApi.createFileEmbargo(crc, "1", embargoJson.build().toString());
@@ -197,10 +198,10 @@ public void testCreateFileEmbargo_withReasonNotRequired_shouldAcceptNullReason()
public void testCreateFileEmbargo_shouldRejectBlankReason_regardlessOfFlag(String blankReason) {
// Arrange
LocalDate futureDate = LocalDate.now().plusMonths(6);
- JsonObjectBuilder embargoJson = Json.createObjectBuilder()
+ JsonObjectBuilder embargoJson = JsonUtil.createObjectBuilder()
.add("dateAvailable", futureDate.toString())
.add("reason", blankReason)
- .add("fileIds", Json.createArrayBuilder().add(2L));
+ .add("fileIds", JsonUtil.createArrayBuilder().add(2L));
// Act
Response response = datasetsApi.createFileEmbargo(crc, "1", embargoJson.build().toString());
@@ -223,10 +224,10 @@ public void testCreateFileEmbargo_shouldRejectBlankReason_regardlessOfFlag(Strin
public void testCreateFileEmbargo_withReasonRequired_shouldRejectEmptyString() {
// Arrange
LocalDate futureDate = LocalDate.now().plusMonths(6);
- JsonObjectBuilder embargoJson = Json.createObjectBuilder()
+ JsonObjectBuilder embargoJson = JsonUtil.createObjectBuilder()
.add("dateAvailable", futureDate.toString())
.add("reason", "")
- .add("fileIds", Json.createArrayBuilder().add(2L));
+ .add("fileIds", JsonUtil.createArrayBuilder().add(2L));
// Act
Response response = datasetsApi.createFileEmbargo(crc, "1", embargoJson.build().toString());
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java b/src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java
index af1f9640e2c..d6968546694 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/DatasetsIT.java
@@ -370,7 +370,7 @@ public void testCreateUpdateDatasetFileCountLimit() throws JsonParseException {
Response updateDataverseResponse = UtilIT.updateDataverse(dataverseAlias, dv, adminApiToken);
updateDataverseResponse.prettyPrint();
- JsonArrayBuilder metadataBlocks = Json.createArrayBuilder();
+ JsonArrayBuilder metadataBlocks = JsonUtil.createArrayBuilder();
metadataBlocks.add("citation");
metadataBlocks.add("journal");
metadataBlocks.add("socialscience");
@@ -482,7 +482,7 @@ public void testAddUpdateDatasetViaNativeAPI() {
createDataverseResponse.prettyPrint();
String dataverseAlias = UtilIT.getAliasFromResponse(createDataverseResponse);
- JsonArrayBuilder metadataBlocks = Json.createArrayBuilder();
+ JsonArrayBuilder metadataBlocks = JsonUtil.createArrayBuilder();
metadataBlocks.add("citation");
metadataBlocks.add("journal");
metadataBlocks.add("socialscience");
@@ -2768,7 +2768,7 @@ public void testDcmChecksumValidationMessages() throws IOException, InterruptedE
/*
Can't find dataset - give bad dataset ID
*/
- JsonObjectBuilder wrongDataset = Json.createObjectBuilder();
+ JsonObjectBuilder wrongDataset = JsonUtil.createObjectBuilder();
String fakeDatasetId = "78921457982457921";
wrongDataset.add("status", "validation passed");
Response createSuperuser = UtilIT.createRandomUser();
@@ -2782,7 +2782,7 @@ public void testDcmChecksumValidationMessages() throws IOException, InterruptedE
.statusCode(404)
.body("message", equalTo("Dataset with ID " + fakeDatasetId + " not found."));
- JsonObjectBuilder badNews = Json.createObjectBuilder();
+ JsonObjectBuilder badNews = JsonUtil.createObjectBuilder();
// Status options are documented at https://github.com/sbgrid/data-capture-module/blob/master/doc/api.md#post-upload
badNews.add("status", "validation failed");
Response uploadFailed = UtilIT.dataCaptureModuleChecksumValidation(datasetPersistentId, badNews.build(), superuserApiToken);
@@ -2850,7 +2850,7 @@ public void testDcmChecksumValidationMessages() throws IOException, InterruptedE
*
* @todo How can we test that the email notification looks ok?
*/
- JsonObjectBuilder goodNews = Json.createObjectBuilder();
+ JsonObjectBuilder goodNews = JsonUtil.createObjectBuilder();
goodNews.add("status", "validation passed");
goodNews.add("uploadFolder", uploadFolder);
goodNews.add("totalSize", totalSize);
@@ -3062,7 +3062,7 @@ public void testDatasetLocksApi() {
// This should return an empty list, as the dataset should have no locks just yet:
Response checkDatasetLocks = UtilIT.checkDatasetLocks(datasetId.longValue(), null, apiToken);
checkDatasetLocks.prettyPrint();
- JsonArray emptyArray = Json.createArrayBuilder().build();
+ JsonArray emptyArray = JsonUtil.createArrayBuilder().build();
checkDatasetLocks.then().assertThat()
.body("data", equalTo(emptyArray))
.statusCode(200);
@@ -3672,7 +3672,7 @@ public void testSemanticMetadataAPIs() {
String expectedJsonLD = UtilIT.getDatasetJson("scripts/search/tests/data/dataset-finch1.jsonld");
- jo = Json.createObjectBuilder(jo).remove("@id").remove("http://schema.org/dateModified").build();
+ jo = JsonUtil.createObjectBuilder(jo).remove("@id").remove("http://schema.org/dateModified").build();
String jsonLD = jo.toString();
// ToDo: Are the static pars as expected
@@ -3851,7 +3851,7 @@ public void testReCreateDataset() {
JsonObject jsonLD = JSONLDUtil.decontextualizeJsonLD(jsonLDString);
JsonObject expectedJsonLD = JSONLDUtil.decontextualizeJsonLD(expectedString);
- expectedJsonLD = Json.createObjectBuilder(expectedJsonLD).remove("@id").remove("http://schema.org/dateModified")
+ expectedJsonLD = JsonUtil.createObjectBuilder(expectedJsonLD).remove("@id").remove("http://schema.org/dateModified")
.build();
// ToDo: Assert that the semantic api response is the same (everything in the
// expected version is in the new one - deleting the @id and dateModified means
@@ -4064,7 +4064,7 @@ public void testFilesUnchangedAfterDatasetMetadataUpdate() throws IOException {
Path pathtoScript = Paths.get(java.nio.file.Files.createTempDirectory(null) + File.separator + "run.sh");
java.nio.file.Files.write(pathtoScript, "#!/bin/bash\necho hello".getBytes());
- JsonObjectBuilder json1 = Json.createObjectBuilder()
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder()
.add("description", "A script to reproduce results.")
.add("directoryLabel", "code");
@@ -4154,7 +4154,7 @@ public void testUpdateDatasetTermsOfAccess() throws IOException {
.body("data.fileAccessRequest", equalTo(true));
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId2), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId2), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String fileId = JsonPath.from(uploadResponse.body().asString()).getString("data.files[0].dataFile.id");
@@ -4283,7 +4283,7 @@ public void testCuratePublishedDatasetVersionCommand() throws IOException {
Path pathtoScript = Paths.get(java.nio.file.Files.createTempDirectory(null) + File.separator + "run.sh");
java.nio.file.Files.write(pathtoScript, "#!/bin/bash\necho hello".getBytes());
- JsonObjectBuilder json1 = Json.createObjectBuilder()
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder()
.add("description", "A script to reproduce results.")
.add("directoryLabel", "code");
@@ -5177,33 +5177,33 @@ public void testDataCiteExport() throws IOException {
String dataverseAlias = UtilIT.getAliasFromResponse(createDataverse);
Integer dataverseId = UtilIT.getDataverseIdFromResponse(createDataverse);
- JsonObjectBuilder datasetJson = Json.createObjectBuilder()
- .add("datasetVersion", Json.createObjectBuilder()
- .add("license", Json.createObjectBuilder()
+ JsonObjectBuilder datasetJson = JsonUtil.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("license", JsonUtil.createObjectBuilder()
.add("name", "CC0 1.0")
.add("uri", "http://creativecommons.org/publicdomain/zero/1.0")
)
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", "Test dataset")
.add("typeClass", "primitive")
.add("multiple", false)
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Simpson, Homer")
.add("typeClass", "primitive")
.add("multiple", false)
.add("typeName", "authorName")
)
.add("authorAffiliation",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "https://ror.org/03vek6s52")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -5215,11 +5215,11 @@ public void testDataCiteExport() throws IOException {
.add("multiple", true)
.add("typeName", "author")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "hsimpson@mailinator.com")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -5230,11 +5230,11 @@ public void testDataCiteExport() throws IOException {
.add("multiple", true)
.add("typeName", "datasetContact")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Just a test dataset.")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -5245,26 +5245,26 @@ public void testDataCiteExport() throws IOException {
.add("multiple", true)
.add("typeName", "dsDescription")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Other")
)
.add("typeClass", "controlledVocabulary")
.add("multiple", true)
.add("typeName", "subject")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "https://ror.org/01cwqze88") // NIH
.add("typeClass", "primitive")
.add("multiple", false)
.add("typeName", "grantNumberAgency")
)
.add("authorAffiliation",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "12345")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -5636,7 +5636,7 @@ public void getVersionFiles() throws IOException, InterruptedException {
// Test Tabular Tag Name
String pathToTabularTestFile = "src/test/resources/tab/test.tab";
- Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadTabularFileResponse.then().assertThat().statusCode(OK.getStatusCode());
String tabularFileId = uploadTabularFileResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
@@ -5692,7 +5692,7 @@ public void getVersionFileCounts() throws IOException, InterruptedException {
// Creating a categorized test file
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String dataFileId = uploadResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
String testCategory = "testCategory";
@@ -5815,7 +5815,7 @@ public void getVersionFileCounts() throws IOException, InterruptedException {
// Test tabular tag name criteria
String pathToTabularTestFile = "src/test/resources/tab/test.tab";
- Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadTabularFileResponse.then().assertThat().statusCode(OK.getStatusCode());
String tabularFileId = uploadTabularFileResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
@@ -5904,7 +5904,7 @@ public void getAvailableDatasetFileCategories() throws IOException, InterruptedE
// Creating a categorized test file
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String dataFileId = uploadResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
String testCategory = "testCategory";
@@ -6032,7 +6032,7 @@ public void getDownloadSize() throws IOException {
// Upload test tabular file
String pathToTabularTestFile = "src/test/resources/tab/test.tab";
- Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadTabularFileResponse.then().assertThat().statusCode(OK.getStatusCode());
int tabularOriginalSize = 157;
@@ -6071,7 +6071,7 @@ public void getDownloadSize() throws IOException {
.body("message", equalTo("Invalid mode: " + invalidMode));
// Upload second test tabular file (same source as before)
- uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, Json.createObjectBuilder().build(), apiToken);
+ uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadTabularFileResponse.then().assertThat().statusCode(OK.getStatusCode());
// Ensure tabular file is ingested
@@ -6350,7 +6350,7 @@ public void testGetCanDownloadAtLeastOneFile() {
// Upload file
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String fileId = JsonPath.from(uploadResponse.body().asString()).getString("data.files[0].dataFile.id");
@@ -6468,10 +6468,10 @@ public void testCompareDatasetVersionsAPI() throws InterruptedException {
String identifier = JsonPath.from(getDatasetJsonBeforePublishing.getBody().asString()).getString("data.identifier");
String datasetPersistentId = protocol + ":" + authority + "/" + identifier;
// used for all added files
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "my description")
.add("directoryLabel", "/data/subdir1/")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
JsonObject jsonObj = json.build();
@@ -6613,10 +6613,10 @@ public void testSummaryDatasetVersionsDifferencesAPI() throws InterruptedExcepti
String identifier = JsonPath.from(getDatasetJsonBeforePublishing.getBody().asString()).getString("data.identifier");
String datasetPersistentId = protocol + ":" + authority + "/" + identifier;
// used for all added files
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "my description")
.add("directoryLabel", "/data/subdir1/")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
JsonObject jsonObj = json.build();
@@ -6905,7 +6905,7 @@ public void testDeleteFiles() {
String pathToFile4 = "scripts/api/data/licenses/licenseCC-BY-NC-ND-4.0.json";
String pathToFile5 = "scripts/api/data/licenses/licenseCC-BY-ND-4.0.json";
- JsonObjectBuilder json = Json.createObjectBuilder();
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder();
json.add("description", "File 1");
Response addFile1Response = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile1, json.build(), apiToken);
Long file1Id = JsonPath.from(addFile1Response.body().asString()).getLong("data.files[0].dataFile.id");
@@ -6927,7 +6927,7 @@ public void testDeleteFiles() {
Long file5Id = JsonPath.from(addFile5Response.body().asString()).getLong("data.files[0].dataFile.id");
// Delete files 1 and 2
- JsonArrayBuilder fileIdsToDelete = Json.createArrayBuilder();
+ JsonArrayBuilder fileIdsToDelete = JsonUtil.createArrayBuilder();
fileIdsToDelete.add(file1Id);
fileIdsToDelete.add(file2Id);
@@ -6957,7 +6957,7 @@ public void testDeleteFiles() {
.statusCode(OK.getStatusCode());
// Delete files 3 and 4 from the published dataset
- fileIdsToDelete = Json.createArrayBuilder();
+ fileIdsToDelete = JsonUtil.createArrayBuilder();
fileIdsToDelete.add(file3Id);
fileIdsToDelete.add(file4Id);
@@ -6977,7 +6977,7 @@ public void testDeleteFiles() {
// Test error conditions
// Try to delete a non-existent file
- fileIdsToDelete = Json.createArrayBuilder();
+ fileIdsToDelete = JsonUtil.createArrayBuilder();
fileIdsToDelete.add(999999L);
deleteFilesResponse = UtilIT.deleteDatasetFiles(datasetId.toString(), fileIdsToDelete.build(), apiToken);
@@ -6997,7 +6997,7 @@ public void testDeleteFiles() {
String unauthorizedUserApiToken = UtilIT.getApiTokenFromResponse(createSecondUser);
//Reset to a valid file id
- fileIdsToDelete = Json.createArrayBuilder();
+ fileIdsToDelete = JsonUtil.createArrayBuilder();
fileIdsToDelete.add(file5Id);
deleteFilesResponse = UtilIT.deleteDatasetFiles(datasetId.toString(), fileIdsToDelete.build(), unauthorizedUserApiToken);
deleteFilesResponse.then().assertThat()
@@ -7041,17 +7041,17 @@ public void testUpdateMultipleFileMetadata() {
String pathToFile2 = "scripts/api/data/licenses/licenseCC-BY-4.0.json";
String pathToFile3 = "scripts/search/ds.tsv";
- JsonObjectBuilder json = Json.createObjectBuilder();
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder();
json.add("description", "File 1");
Response addFile1Response = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile1, json.build(), apiToken);
Integer file1Id = UtilIT.getDataFileIdFromResponse(addFile1Response);
- json = Json.createObjectBuilder();
+ json = JsonUtil.createObjectBuilder();
json.add("description", "File 2");
Response addFile2Response = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile2, json.build(), apiToken);
Integer file2Id = UtilIT.getDataFileIdFromResponse(addFile2Response);
- json = Json.createObjectBuilder();
+ json = JsonUtil.createObjectBuilder();
json.add("description", "File 3");
Response addFile3Response = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile3, json.build(), apiToken);
Integer file3Id = UtilIT.getDataFileIdFromResponse(addFile3Response);
@@ -7059,22 +7059,22 @@ public void testUpdateMultipleFileMetadata() {
assertTrue(UtilIT.sleepForLock(datasetId.longValue(), "Ingest", apiToken, UtilIT.MAXIMUM_INGEST_LOCK_DURATION), "Failed test if Ingest Lock exceeds max duration for " + pathToFile3);
// Prepare JSON for updating file metadata
- JsonArrayBuilder filesArrayBuilder = Json.createArrayBuilder();
- filesArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder filesArrayBuilder = JsonUtil.createArrayBuilder();
+ filesArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file1Id)
.add("label", "Updated File 1")
.add("directoryLabel", "dir1/")
.add("description", "Updated description for File 1")
- .add("categories", Json.createArrayBuilder().add("Category 1").add("Category 2"))
+ .add("categories", JsonUtil.createArrayBuilder().add("Category 1").add("Category 2"))
.add("provFreeForm", "Updated provenance for File 1")
.add("restrict", true));
- filesArrayBuilder.add(Json.createObjectBuilder()
+ filesArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file2Id)
.add("label", "Updated File 2")
.add("directoryLabel", "dir2/")
.add("description", "Updated description for File 2")
- .add("categories", Json.createArrayBuilder().add("Category 3"))
+ .add("categories", JsonUtil.createArrayBuilder().add("Category 3"))
.add("provFreeForm", "Updated provenance for File 2"));
// Test updating file metadata
@@ -7096,8 +7096,8 @@ public void testUpdateMultipleFileMetadata() {
assertEquals("Updated File 1", file.getString("label"));
assertEquals("dir1", file.getString("directoryLabel"));
assertEquals("Updated description for File 1", dataFile.getString("description"));
- assertTrue(dataFile.getJsonArray("categories").contains(Json.createValue("Category 1")));
- assertTrue(dataFile.getJsonArray("categories").contains(Json.createValue("Category 2")));
+ assertTrue(dataFile.getJsonArray("categories").contains(JsonUtil.createValue("Category 1")));
+ assertTrue(dataFile.getJsonArray("categories").contains(JsonUtil.createValue("Category 2")));
assertTrue(file.getBoolean("restricted"));
// Check provFreeForm for file1
@@ -7109,7 +7109,7 @@ public void testUpdateMultipleFileMetadata() {
assertEquals("Updated File 2", file.getString("label"));
assertEquals("dir2", file.getString("directoryLabel"));
assertEquals("Updated description for File 2", dataFile.getString("description"));
- assertTrue(dataFile.getJsonArray("categories").contains(Json.createValue("Category 3")));
+ assertTrue(dataFile.getJsonArray("categories").contains(JsonUtil.createValue("Category 3")));
// Check provFreeForm for file2
Response provResponse = UtilIT.getProvFreeForm(file2Id.toString(), apiToken);
@@ -7120,8 +7120,8 @@ public void testUpdateMultipleFileMetadata() {
}
// Test updating the same file with the same restrict value
- JsonArrayBuilder sameRestrictValueArrayBuilder = Json.createArrayBuilder();
- sameRestrictValueArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder sameRestrictValueArrayBuilder = JsonUtil.createArrayBuilder();
+ sameRestrictValueArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file1Id)
.add("restrict", true));
@@ -7131,8 +7131,8 @@ public void testUpdateMultipleFileMetadata() {
.body("message", containsString("is already restricted"));
// Test updating a file not in the dataset
- JsonArrayBuilder invalidFilesArrayBuilder = Json.createArrayBuilder();
- invalidFilesArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder invalidFilesArrayBuilder = JsonUtil.createArrayBuilder();
+ invalidFilesArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", 999999)
.add("label", "Invalid File"));
@@ -7148,8 +7148,8 @@ public void testUpdateMultipleFileMetadata() {
publishDatasetResponse.then().assertThat()
.statusCode(OK.getStatusCode());
- JsonArrayBuilder postPublishFilesArrayBuilder = Json.createArrayBuilder();
- postPublishFilesArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder postPublishFilesArrayBuilder = JsonUtil.createArrayBuilder();
+ postPublishFilesArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file3Id)
.add("label", "Updated File 3 After Publication")
.add("description", "Updated description for File 3 after publication"));
@@ -7173,10 +7173,10 @@ public void testUpdateMultipleFileMetadata() {
}
// Test adding dataFileTags to a non-tabular file (should fail)
- JsonArrayBuilder nonTabularTagsArrayBuilder = Json.createArrayBuilder();
- nonTabularTagsArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder nonTabularTagsArrayBuilder = JsonUtil.createArrayBuilder();
+ nonTabularTagsArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file1Id)
- .add("dataFileTags", Json.createArrayBuilder().add("Survey")));
+ .add("dataFileTags", JsonUtil.createArrayBuilder().add("Survey")));
Response nonTabularTagsResponse = UtilIT.updateDatasetFilesMetadata(datasetId.toString(), nonTabularTagsArrayBuilder.build(), apiToken);
nonTabularTagsResponse.then().assertThat()
@@ -7184,10 +7184,10 @@ public void testUpdateMultipleFileMetadata() {
.body("message", containsString(BundleUtil.getStringFromBundle("file.metadata.datafiletag.not_tabular")));
// Test adding valid dataFileTags to a tabular file (file3 is ds.tsv, which is tabular)
- JsonArrayBuilder validTagsArrayBuilder = Json.createArrayBuilder();
- validTagsArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder validTagsArrayBuilder = JsonUtil.createArrayBuilder();
+ validTagsArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file3Id)
- .add("dataFileTags", Json.createArrayBuilder().add(DataFileTag.TagType.Survey.toString()).add(DataFileTag.TagType.Survey.toString())));
+ .add("dataFileTags", JsonUtil.createArrayBuilder().add(DataFileTag.TagType.Survey.toString()).add(DataFileTag.TagType.Survey.toString())));
Response validTagsResponse = UtilIT.updateDatasetFilesMetadata(datasetId.toString(), validTagsArrayBuilder.build(), apiToken);
validTagsResponse.then().assertThat()
@@ -7204,7 +7204,7 @@ public void testUpdateMultipleFileMetadata() {
JsonObject dataFile = file.getJsonObject("dataFile");
if (dataFile.getInt("id") == file3Id) {
JsonArray tabularTags = dataFile.getJsonArray("tabularTags");
- if (tabularTags != null && tabularTags.contains(Json.createValue(DataFileTag.TagType.Survey.toString())) && tabularTags.contains(Json.createValue(DataFileTag.TagType.Survey.toString()))) {
+ if (tabularTags != null && tabularTags.contains(JsonUtil.createValue(DataFileTag.TagType.Survey.toString())) && tabularTags.contains(JsonUtil.createValue(DataFileTag.TagType.Survey.toString()))) {
foundValidTags = true;
break;
}
@@ -7213,10 +7213,10 @@ public void testUpdateMultipleFileMetadata() {
assertTrue(foundValidTags);
// Test adding an invalid dataFileTag to a tabular file
- JsonArrayBuilder invalidTagsArrayBuilder = Json.createArrayBuilder();
- invalidTagsArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder invalidTagsArrayBuilder = JsonUtil.createArrayBuilder();
+ invalidTagsArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file3Id)
- .add("dataFileTags", Json.createArrayBuilder().add("InvalidTag")));
+ .add("dataFileTags", JsonUtil.createArrayBuilder().add("InvalidTag")));
Response invalidTagsResponse = UtilIT.updateDatasetFilesMetadata(datasetId.toString(), invalidTagsArrayBuilder.build(), apiToken);
invalidTagsResponse.then().assertThat()
@@ -7229,8 +7229,8 @@ public void testUpdateMultipleFileMetadata() {
String secondApiToken = UtilIT.getApiTokenFromResponse(createSecondUser);
// Attempt to update file metadata with the second user
- JsonArrayBuilder unauthorizedFilesArrayBuilder = Json.createArrayBuilder();
- unauthorizedFilesArrayBuilder.add(Json.createObjectBuilder()
+ JsonArrayBuilder unauthorizedFilesArrayBuilder = JsonUtil.createArrayBuilder();
+ unauthorizedFilesArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("dataFileId", file3Id)
.add("label", "Unauthorized Update")
.add("description", "This update should not be allowed"));
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/DataversesIT.java b/src/test/java/edu/harvard/iq/dataverse/api/DataversesIT.java
index 4f4310700e2..2c13345451f 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/DataversesIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/DataversesIT.java
@@ -265,7 +265,7 @@ public void testNotEnoughJson() {
createUser.prettyPrint();
String username = UtilIT.getUsernameFromResponse(createUser);
String apiToken = UtilIT.getApiTokenFromResponse(createUser);
- Response createFail = UtilIT.createDataverse(Json.createObjectBuilder().add("name", "notEnough").add("alias", "notEnough").build(), apiToken);
+ Response createFail = UtilIT.createDataverse(JsonUtil.createObjectBuilder().add("name", "notEnough").add("alias", "notEnough").build(), apiToken);
createFail.prettyPrint();
createFail.then().assertThat()
/**
@@ -289,11 +289,11 @@ public void testReturnEmail() throws FileNotFoundException {
String apiToken = UtilIT.getApiTokenFromResponse(createUser);
String dataverseAlias = UtilIT.getRandomDvAlias();
String emailAddressOfFirstDataverseContact = dataverseAlias + "@mailinator.com";
- JsonObjectBuilder jsonToCreateDataverse = Json.createObjectBuilder()
+ JsonObjectBuilder jsonToCreateDataverse = JsonUtil.createObjectBuilder()
.add("name", dataverseAlias)
.add("alias", dataverseAlias)
- .add("dataverseContacts", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("dataverseContacts", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("contactEmail", emailAddressOfFirstDataverseContact)
)
);
@@ -995,25 +995,25 @@ public void testImport() throws IOException, InterruptedException {
Response publishDataverse = UtilIT.publishDataverseViaNativeApi(dataverseAlias, apiToken);
assertEquals(200, publishDataverse.getStatusCode());
- JsonObjectBuilder datasetJson = Json.createObjectBuilder()
- .add("datasetVersion", Json.createObjectBuilder()
- .add("license", Json.createObjectBuilder()
+ JsonObjectBuilder datasetJson = JsonUtil.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("license", JsonUtil.createObjectBuilder()
.add("name", "CC0 1.0")
)
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", "Test Dataset")
.add("typeClass", "primitive")
.add("multiple", false)
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Simpson, Homer")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1024,11 +1024,11 @@ public void testImport() throws IOException, InterruptedException {
.add("multiple", true)
.add("typeName", "author")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "hsimpson@mailinator.com")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1039,11 +1039,11 @@ public void testImport() throws IOException, InterruptedException {
.add("multiple", true)
.add("typeName", "datasetContact")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "This a test dataset.")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1054,8 +1054,8 @@ public void testImport() throws IOException, InterruptedException {
.add("multiple", true)
.add("typeName", "dsDescription")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Other")
)
.add("typeClass", "controlledVocabulary")
@@ -1256,7 +1256,7 @@ public void testListMetadataBlocks() {
.body("data[0].fields.size()", is(10)) // 28 - 18 child duplicates
.body("data[0].fields.author.childFields.size()", is(4));
- Response setMetadataBlocksResponse = UtilIT.setMetadataBlocks(dataverseAlias, Json.createArrayBuilder().add("citation").add("astrophysics"), apiToken);
+ Response setMetadataBlocksResponse = UtilIT.setMetadataBlocks(dataverseAlias, JsonUtil.createArrayBuilder().add("citation").add("astrophysics"), apiToken);
setMetadataBlocksResponse.prettyPrint();
setMetadataBlocksResponse.then().assertThat().statusCode(OK.getStatusCode());
@@ -2546,7 +2546,7 @@ public void testUpdateInputLevelDisplayOnCreate() {
// Configure metadata blocks - disable inherit from root and set specific blocks
Response setMetadataBlocksResponse = UtilIT.setMetadataBlocks(
dataverseAlias,
- Json.createArrayBuilder().add("socialscience"),
+ JsonUtil.createArrayBuilder().add("socialscience"),
apiToken);
setMetadataBlocksResponse.then().assertThat()
.statusCode(OK.getStatusCode());
@@ -2587,7 +2587,7 @@ public void testUpdateInputLevelDisplayOnCreateOverride() {
// Configure metadata blocks - disable inherit from root and set specific blocks
Response setMetadataBlocksResponse = UtilIT.setMetadataBlocks(
dataverseAlias,
- Json.createArrayBuilder().add("citation"),
+ JsonUtil.createArrayBuilder().add("citation"),
apiToken);
setMetadataBlocksResponse.then().assertThat()
.statusCode(OK.getStatusCode());
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/DeleteUsersIT.java b/src/test/java/edu/harvard/iq/dataverse/api/DeleteUsersIT.java
index 13f48f9b854..ee687069c28 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/DeleteUsersIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/DeleteUsersIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -640,7 +641,7 @@ public void testCuratorSendsCommentsToAuthor() throws InterruptedException {
// curator2 returns dataset to author. This makes curator2 a contributor.
String comments = "You forgot to upload any files.";
- JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonObjectBuilder = JsonUtil.createObjectBuilder();
jsonObjectBuilder.add("reasonForReturn", comments);
Response returnToAuthor = UtilIT.returnDatasetToAuthor(datasetPersistentId, jsonObjectBuilder.build(), curator2ApiToken);
returnToAuthor.prettyPrint();
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/DuplicateFilesIT.java b/src/test/java/edu/harvard/iq/dataverse/api/DuplicateFilesIT.java
index 32b949fad25..4eca6515031 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/DuplicateFilesIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/DuplicateFilesIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.parsing.Parser;
import io.restassured.path.json.JsonPath;
@@ -105,7 +106,7 @@ public void uploadTwoFilesWithSameNameDifferentDirectories() throws IOException
Files.write(pathtoReadme1, "File 1".getBytes());
System.out.println("README: " + pathtoReadme1);
- JsonObjectBuilder json1 = Json.createObjectBuilder()
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder()
.add("description", "Description of the whole project.");
Response uploadReadme1 = UtilIT.uploadFileViaNative(datasetId.toString(), pathtoReadme1.toString(), json1.build(), apiToken);
@@ -118,7 +119,7 @@ public void uploadTwoFilesWithSameNameDifferentDirectories() throws IOException
Files.write(pathtoReadme2, "File 2".getBytes());
System.out.println("README: " + pathtoReadme2);
- JsonObjectBuilder json2 = Json.createObjectBuilder()
+ JsonObjectBuilder json2 = JsonUtil.createObjectBuilder()
.add("description", "Docs for the code.")
.add("directoryLabel", "code");
@@ -182,7 +183,7 @@ public void renameFileToSameName() throws IOException {
Long idOfReadme2 = JsonPath.from(uploadReadme2.getBody().asString()).getLong("data.files[0].dataFile.id");
System.out.println("id: " + idOfReadme2);
- JsonObjectBuilder renameFile = Json.createObjectBuilder()
+ JsonObjectBuilder renameFile = JsonUtil.createObjectBuilder()
.add("label", "README.md");
Response renameFileResponse = UtilIT.updateFileMetadata(String.valueOf(idOfReadme2), renameFile.build().toString(), apiToken);
renameFileResponse.prettyPrint();
@@ -228,7 +229,7 @@ public void moveFileToDirectoryContainingSameFileName() throws IOException {
Files.write(pathtoReadme1, "File 1".getBytes());
System.out.println("README: " + pathtoReadme1);
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "Docs for the code.")
.add("directoryLabel", "code");
@@ -254,7 +255,7 @@ public void moveFileToDirectoryContainingSameFileName() throws IOException {
Long idOfReadme2 = JsonPath.from(uploadReadme2.getBody().asString()).getLong("data.files[0].dataFile.id");
System.out.println("id: " + idOfReadme2);
- JsonObjectBuilder moveFile = Json.createObjectBuilder()
+ JsonObjectBuilder moveFile = JsonUtil.createObjectBuilder()
.add("directoryLabel", "code");
Response moveFileResponse = UtilIT.updateFileMetadata(String.valueOf(idOfReadme2), moveFile.build().toString(), apiToken);
moveFileResponse.prettyPrint();
@@ -305,7 +306,7 @@ public void modifyFileDescription() throws IOException {
Integer idOfReadme1 = JsonPath.from(uploadReadme1.getBody().asString()).getInt("data.files[0].dataFile.id");
System.out.println("id: " + idOfReadme1);
- JsonObjectBuilder updateFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder updateFileMetadata = JsonUtil.createObjectBuilder()
.add("description", "This file is awesome.");
Response updateFileMetadataResponse = UtilIT.updateFileMetadata(String.valueOf(idOfReadme1), updateFileMetadata.build().toString(), apiToken);
updateFileMetadataResponse.prettyPrint();
@@ -345,7 +346,7 @@ public void modifyFileDescriptionSameLabel() throws IOException {
Files.write(pathtoReadme1, "File 1".getBytes());
System.out.println("README: " + pathtoReadme1);
- JsonObjectBuilder json1 = Json.createObjectBuilder()
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder()
.add("directoryLabel", "code");
Response uploadReadme1 = UtilIT.uploadFileViaNative(datasetId.toString(), pathtoReadme1.toString(), json1.build(), apiToken);
@@ -357,7 +358,7 @@ public void modifyFileDescriptionSameLabel() throws IOException {
Integer idOfReadme1 = JsonPath.from(uploadReadme1.getBody().asString()).getInt("data.files[0].dataFile.id");
System.out.println("id: " + idOfReadme1);
- JsonObjectBuilder updateFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder updateFileMetadata = JsonUtil.createObjectBuilder()
.add("label", "README.md")
.add("directoryLabel", "code")
.add("description", "This file is awesome.");
@@ -399,7 +400,7 @@ public void existingDirectoryPassLabelChangeDescription() throws IOException {
Files.write(pathToFile, "File 1".getBytes());
System.out.println("file: " + pathToFile);
- JsonObjectBuilder json1 = Json.createObjectBuilder()
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder()
.add("directory", "code");
Response uploadFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile.toString(), json1.build(), apiToken);
@@ -411,7 +412,7 @@ public void existingDirectoryPassLabelChangeDescription() throws IOException {
Integer idOfFile = JsonPath.from(uploadFile.getBody().asString()).getInt("data.files[0].dataFile.id");
System.out.println("id: " + idOfFile);
- JsonObjectBuilder updateFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder updateFileMetadata = JsonUtil.createObjectBuilder()
.add("label", "label")
.add("description", "This file is awesome.");
Response updateFileMetadataResponse = UtilIT.updateFileMetadata(String.valueOf(idOfFile), updateFileMetadata.build().toString(), apiToken);
@@ -463,7 +464,7 @@ public void existingDirectoryNullPassEmptyStringChangeDescription() throws IOExc
Files.write(pathToFile, "File 1".getBytes());
System.out.println("file: " + pathToFile);
- JsonObjectBuilder json1 = Json.createObjectBuilder()
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder()
.add("description", "This is my file.");
Response uploadFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile.toString(), json1.build(), apiToken);
@@ -475,7 +476,7 @@ public void existingDirectoryNullPassEmptyStringChangeDescription() throws IOExc
Integer idOfFile = JsonPath.from(uploadFile.getBody().asString()).getInt("data.files[0].dataFile.id");
System.out.println("id: " + idOfFile);
- JsonObjectBuilder updateFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder updateFileMetadata = JsonUtil.createObjectBuilder()
// It doesn't make sense to pass "" as a directoryLabel.
.add("directoryLabel", "")
.add("description", "This file is awesome.");
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/ExternalToolsIT.java b/src/test/java/edu/harvard/iq/dataverse/api/ExternalToolsIT.java
index 6637ea290c1..31e2f9c441d 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/ExternalToolsIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/ExternalToolsIT.java
@@ -208,19 +208,19 @@ public void testFileLevelTool1() {
assertTrue(UtilIT.sleepForLock(datasetId.longValue(), "Ingest", apiToken, UtilIT.MAXIMUM_INGEST_LOCK_DURATION), "Failed test if Ingest Lock exceeds max duration " + pathToTabularFile);
Integer tabularFileId = JsonPath.from(uploadTabularFile.getBody().asString()).getInt("data.files[0].dataFile.id");
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("contentType", "text/tab-separated-values");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -296,18 +296,18 @@ public void testDatasetLevelTool1() {
int fileId = JsonPath.from(getFileIdRequest.getBody().asString()).getInt("data.latestVersion.files[0].dataFile.id");
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "DatasetTool1");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "dataset");
job.add("toolUrl", "http://datasettool1.com");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetPid", "{datasetPid}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -402,16 +402,16 @@ public void testDatasetLevelToolConfigure() {
@Test
public void testAddFilelToolNoFileId() throws IOException {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("description", "This tool is awesome.");
job.add("type", "explore");
job.add("scope", "file");
job.add("toolUrl", "http://awesometool.com");
job.add("contentType", "application/pdf");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -425,15 +425,15 @@ public void testAddFilelToolNoFileId() throws IOException {
@Test
public void testAddDatasetToolNoDatasetId() throws IOException {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("description", "This tool is awesome.");
job.add("type", "explore");
job.add("scope", "dataset");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -447,22 +447,22 @@ public void testAddDatasetToolNoDatasetId() throws IOException {
@Test
public void testAddExternalToolNonReservedWord() throws IOException {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("description", "This tool is awesome.");
job.add("type", "explore");
job.add("scope", "file");
job.add("toolUrl", "http://awesometool.com");
job.add("contentType", "application/pdf");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("mode", "mode1")
.build())
.build())
@@ -499,32 +499,32 @@ public void deleteTools() {
@Disabled
@Test
public void createToolShellScript() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "View Code");
job.add("description", "");
- job.add("types", Json.createArrayBuilder().add("preview"));
+ job.add("types", JsonUtil.createArrayBuilder().add("preview"));
job.add("scope", "file");
job.add("hasPreviewMode", "true");
job.add("contentType", "application/x-sh");
job.add("toolUrl", "http://localhost:8000/dataverse-previewers/previewers/TextPreview.html");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("siteUrl", "{siteUrl}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetid", "{datasetId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetversion", "{datasetVersion}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("locale", "{localeCode}")
.build())
.build())
@@ -547,25 +547,25 @@ public void createToolShellScript() {
@Test
public void createToolDataExplorer() {
/*
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "Data Explorer");
job.add("description", "");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("contentType", "text/tab-separated-values");
job.add("toolUrl", "https://scholarsportal.github.io/Dataverse-Data-Explorer-v2/");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileId", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("siteUrl", "{siteUrl}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dvLocale", "{localeCode}")
.build())
.build())
@@ -588,10 +588,10 @@ public void createToolDataExplorer() {
@Disabled
@Test
public void createToolSpreadsheetViewer() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "View Data");
job.add("description", "");
- job.add("types", Json.createArrayBuilder()
+ job.add("types", JsonUtil.createArrayBuilder()
.add("preview")
.add("explore")
);
@@ -599,24 +599,24 @@ public void createToolSpreadsheetViewer() {
job.add("hasPreviewMode", "true");
job.add("contentType", "text/tab-separated-values");
job.add("toolUrl", "http://localhost:8000/dataverse-previewers/previewers/SpreadsheetPreview.html");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("siteUrl", "{siteUrl}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetid", "{datasetId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetversion", "{datasetVersion}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("locale", "{localeCode}")
.build())
.build())
@@ -671,29 +671,29 @@ public void testFileLevelToolWithAuxFileReq() throws IOException {
Integer trueHdf5 = JsonPath.from(uploadTrueHdf5.getBody().asString()).getInt("data.files[0].dataFile.id");
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "HDF5 Tool");
job.add("description", "Operates on HDF5 files");
- job.add("types", Json.createArrayBuilder().add("preview"));
+ job.add("types", JsonUtil.createArrayBuilder().add("preview"));
job.add("scope", "file");
job.add("contentType", "application/x-hdf5");
job.add("toolUrl", "/dataexplore/dataverse-previewers/previewers/v1.3/TextPreview.html");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("siteUrl", "{siteUrl}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
.build());
- job.add("requirements", Json.createObjectBuilder()
- .add("auxFilesExist", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("requirements", JsonUtil.createObjectBuilder()
+ .add("auxFilesExist", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("formatTag", "NcML")
.add("formatVersion", "0.1")
)
@@ -769,24 +769,24 @@ public void testExternalToolUrlApi() {
Integer textFileId = JsonPath.from(uploadTextFile.getBody().asString()).getInt("data.files[0].dataFile.id");
// Create a dataset-level tool
- JsonObjectBuilder datasetToolJob = Json.createObjectBuilder();
+ JsonObjectBuilder datasetToolJob = JsonUtil.createObjectBuilder();
datasetToolJob.add("displayName", "Dataset API Tool");
datasetToolJob.add("description", "Tests the dataset-level tool URL API");
- datasetToolJob.add("types", Json.createArrayBuilder().add("explore"));
+ datasetToolJob.add("types", JsonUtil.createArrayBuilder().add("explore"));
datasetToolJob.add("scope", "dataset");
datasetToolJob.add("toolUrl", "http://example.org/dataset-tool");
- datasetToolJob.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ datasetToolJob.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetId", "{datasetId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
.build());
- datasetToolJob.add("allowedApiCalls", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ datasetToolJob.add("allowedApiCalls", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("name", "retrieveDatasetJson")
.add("httpMethod", "GET")
.add("urlTemplate", "/api/v1/datasets/{datasetId}")
@@ -802,25 +802,25 @@ public void testExternalToolUrlApi() {
Long datasetToolId = JsonPath.from(addDatasetTool.getBody().asString()).getLong("data.id");
// Create a file-level tool for text/plain
- JsonObjectBuilder fileToolJob = Json.createObjectBuilder();
+ JsonObjectBuilder fileToolJob = JsonUtil.createObjectBuilder();
fileToolJob.add("displayName", "Text File Tool");
fileToolJob.add("description", "Tests the file-level tool URL API");
- fileToolJob.add("types", Json.createArrayBuilder().add("explore"));
+ fileToolJob.add("types", JsonUtil.createArrayBuilder().add("explore"));
fileToolJob.add("scope", "file");
fileToolJob.add("contentType", "text/plain");
fileToolJob.add("toolUrl", "http://example.org/text-tool");
- fileToolJob.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ fileToolJob.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileId", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
.build());
- fileToolJob.add("allowedApiCalls", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ fileToolJob.add("allowedApiCalls", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("name", "retrieveFileContents")
.add("httpMethod", "GET")
.add("urlTemplate", "/api/v1/access/datafile/{fileId}?gbrecs=true")
@@ -916,7 +916,7 @@ public void testExternalToolUrlApi() {
"File callback response should contain the query parameter");
// Test with preview mode
- JsonObjectBuilder previewParams = Json.createObjectBuilder()
+ JsonObjectBuilder previewParams = JsonUtil.createObjectBuilder()
.add("preview", true)
.add("locale", "fr");
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/FeedbackApiIT.java b/src/test/java/edu/harvard/iq/dataverse/api/FeedbackApiIT.java
index 220d386e28e..0dc399f342a 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/FeedbackApiIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/FeedbackApiIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -20,7 +21,7 @@ public static void setUpClass() {
@Test
public void testSupportRequest() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("fromEmail", "from@mailinator.com");
job.add("subject", "Help!");
job.add("body", "I need help.");
@@ -34,7 +35,7 @@ public void testSupportRequest() {
@Test
public void testSubmitFeedbackOnRootDataverse() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
long rootDataverseId = 1;
job.add("id", rootDataverseId);
job.add("fromEmail", "from@mailinator.com");
@@ -75,7 +76,7 @@ public void testSubmitFeedbackOnDataset() {
long datasetId = JsonPath.from(createDataset.body().asString()).getLong("data.id");
String pid = JsonPath.from(createDataset.body().asString()).getString("data.persistentId");
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("id", datasetId);
job.add("fromEmail", "from@mailinator.com");
job.add("toEmail", "to@mailinator.com");
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/FileTypeDetectionIT.java b/src/test/java/edu/harvard/iq/dataverse/api/FileTypeDetectionIT.java
index 989688b0af6..f7060ab2f3e 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/FileTypeDetectionIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/FileTypeDetectionIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -45,9 +46,9 @@ public void testOverrideMimeType() {
String readmeFile = "README.md";
- JsonObjectBuilder readmeFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder readmeFileMetadata = JsonUtil.createObjectBuilder()
.add("description", "How to run the code on the data.")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Documentation")
);
@@ -69,10 +70,10 @@ public void testOverrideMimeType() {
String jupyterNotebook = "src/test/java/edu/harvard/iq/dataverse/util/irc-metrics.ipynb";
- JsonObjectBuilder jupyterNotebookMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder jupyterNotebookMetadata = JsonUtil.createObjectBuilder()
.add("description", "Jupyter Notebook showing IRC metrics.")
.add("directoryLabel", "code")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Code")
);
@@ -92,10 +93,10 @@ public void testOverrideMimeType() {
String tsvFile = "src/test/java/edu/harvard/iq/dataverse/util/irclog.tsv";
- JsonObjectBuilder tsvFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder tsvFileMetadata = JsonUtil.createObjectBuilder()
.add("description", "TSV file of Dataverse IRC logs.")
.add("directoryLabel", "data")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
@@ -140,9 +141,9 @@ public void testRedetectMimeType() {
String filePath = "scripts/issues/1380/dvs.pdf";
- JsonObjectBuilder readmeFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder readmeFileMetadata = JsonUtil.createObjectBuilder()
.add("description", "This is a PDF.")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Documentation")
);
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/FilesIT.java b/src/test/java/edu/harvard/iq/dataverse/api/FilesIT.java
index 7bc06f7c92c..a5ff4c65cdb 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/FilesIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/FilesIT.java
@@ -130,10 +130,10 @@ public void test_001_AddFileGood() {
String pathToFile = "src/main/webapp/resources/images/dataverseproject.png";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "my description")
.add("directoryLabel", "data/subdir1")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
@@ -386,10 +386,10 @@ public void test_006_ReplaceFileGood() throws InterruptedException {
// -------------------------
msg("Replace file - 1st time");
String pathToFile2 = "scripts/search/data/replace_test/004.txt";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "My Text File")
.add("directoryLabel", "data/subdir1")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
@@ -447,7 +447,7 @@ public void test_006_ReplaceFileGood() throws InterruptedException {
// -------------------------
msg("Replace file (again)");
String pathToFile3 = "scripts/search/data/replace_test/005.txt";
- JsonObjectBuilder json2 = Json.createObjectBuilder();
+ JsonObjectBuilder json2 = JsonUtil.createObjectBuilder();
Response replaceResp2 = UtilIT.replaceFile(newDataFileId.toString(), pathToFile3, json2.build(), apiToken);
msgt("2nd replace: " + replaceResp2.prettyPrint());
@@ -559,13 +559,13 @@ public void test_006_ReplaceFileGoodTabular() throws InterruptedException {
// -------------------------
msg("Replace file - 1st time");
String pathToFile2 = "scripts/search/data/tabular/120745.dta";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("forceReplace", true)
.add("description", "tiny Stata file")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
)
- .add("dataFileTags", Json.createArrayBuilder()
+ .add("dataFileTags", JsonUtil.createArrayBuilder()
.add("Survey")
);
Response replaceResp = UtilIT.replaceFile(origFileId.toString(), pathToFile2, json.build(), apiToken);
@@ -648,10 +648,10 @@ public void testForceReplaceAndUpdate() {
// -------------------------
msg("Replace file - 1st time");
String pathToFile2 = "scripts/search/data/replace_test/growing_file/2016-01/data.tsv";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("forceReplace", true)
.add("description", "not an image")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
@@ -1099,9 +1099,9 @@ public void testRestrictAddedFile() {
msg("Add initial file");
String pathToFile = "src/main/webapp/resources/images/dataverseproject.png";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "my description")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
)
.add("restrict", "true");
@@ -1850,7 +1850,7 @@ public void getFileVersionDifferences() {
// Test FileMetadata update
- JsonObjectBuilder updateFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder updateFileMetadata = JsonUtil.createObjectBuilder()
.add("label", "new_name.png");
UtilIT.updateFileMetadata(dataFileId, updateFileMetadata.build().toString(), superUserApiToken).then().statusCode(OK.getStatusCode());
@@ -1954,7 +1954,7 @@ public void testGetFileInfo() {
// Update the file metadata
String newFileNameFirstUpdate = "trees_2.png";
- JsonObjectBuilder updateFileMetadata = Json.createObjectBuilder()
+ JsonObjectBuilder updateFileMetadata = JsonUtil.createObjectBuilder()
.add("label", newFileNameFirstUpdate);
Response updateFileMetadataResponse = UtilIT.updateFileMetadata(dataFileId, updateFileMetadata.build().toString(), superUserApiToken);
updateFileMetadataResponse.then().statusCode(OK.getStatusCode());
@@ -1976,7 +1976,7 @@ public void testGetFileInfo() {
// Update the file metadata once again
String newFileNameSecondUpdate = "trees_3.png";
- updateFileMetadata = Json.createObjectBuilder()
+ updateFileMetadata = JsonUtil.createObjectBuilder()
.add("label", newFileNameSecondUpdate);
updateFileMetadataResponse = UtilIT.updateFileMetadata(dataFileId, updateFileMetadata.build().toString(), superUserApiToken);
updateFileMetadataResponse.then().statusCode(OK.getStatusCode());
@@ -2085,7 +2085,7 @@ public void testGetFileInfo() {
// Update the file metadata
String newFileNameThirdUpdate = "trees_4.png";
- updateFileMetadata = Json.createObjectBuilder()
+ updateFileMetadata = JsonUtil.createObjectBuilder()
.add("label", newFileNameThirdUpdate);
updateFileMetadataResponse = UtilIT.updateFileMetadata(dataFileId, updateFileMetadata.build().toString(), superUserApiToken);
updateFileMetadataResponse.then().statusCode(OK.getStatusCode());
@@ -2296,7 +2296,7 @@ public void test_ProcessShapeFilePackage() {
String extractedShapeName = "boston_public_schools_2012_z1l.zip";
String extractedShapeType = "application/zipped-shapefile";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", suppliedDescription);
Response addResponse = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile, json.build(), apiToken);
@@ -2347,7 +2347,7 @@ public void test_CrawlableAccessToDatasetFiles() {
String description = "test file 1";
String folderName = "subfolder";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", description)
.add("directoryLabel", folderName);
@@ -2700,10 +2700,10 @@ public void testDeleteFile() {
// Upload file 1
String pathToFile1 = "src/main/webapp/resources/images/dataverseproject.png";
- JsonObjectBuilder json1 = Json.createObjectBuilder()
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder()
.add("description", "my description1")
.add("directoryLabel", "data/subdir1")
- .add("categories", Json.createArrayBuilder().add("Data"));
+ .add("categories", JsonUtil.createArrayBuilder().add("Data"));
Response uploadResponse1 = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile1, json1.build(), apiToken);
uploadResponse1.then().assertThat().statusCode(OK.getStatusCode());
@@ -2727,10 +2727,10 @@ public void testDeleteFile() {
// Upload file 2
String pathToFile2 = "src/main/webapp/resources/images/cc0.png";
- JsonObjectBuilder json2 = Json.createObjectBuilder()
+ JsonObjectBuilder json2 = JsonUtil.createObjectBuilder()
.add("description", "my description2")
.add("directoryLabel", "data/subdir1")
- .add("categories", Json.createArrayBuilder().add("Data"));
+ .add("categories", JsonUtil.createArrayBuilder().add("Data"));
Response uploadResponse2 = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile2, json2.build(), apiToken);
uploadResponse2.then().assertThat().statusCode(OK.getStatusCode());
@@ -2738,10 +2738,10 @@ public void testDeleteFile() {
// Upload file 3
String pathToFile3 = "src/main/webapp/resources/images/orcid_16x16.png";
- JsonObjectBuilder json3 = Json.createObjectBuilder()
+ JsonObjectBuilder json3 = JsonUtil.createObjectBuilder()
.add("description", "my description3")
.add("directoryLabel", "data/subdir1")
- .add("categories", Json.createArrayBuilder().add("Data"));
+ .add("categories", JsonUtil.createArrayBuilder().add("Data"));
Response uploadResponse3 = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile3, json3.build(), apiToken);
uploadResponse3.then().assertThat().statusCode(OK.getStatusCode());
@@ -2895,7 +2895,7 @@ public void testGetFileDownloadCount() throws InterruptedException {
// Upload test file
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(datasetId.toString(), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(datasetId.toString(), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
// Publish collection and dataset
@@ -2938,7 +2938,7 @@ public void testGetFileDataTables() throws InterruptedException {
// Upload non-tabular file
String pathToNonTabularTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadNonTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToNonTabularTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadNonTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToNonTabularTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadNonTabularFileResponse.then().assertThat().statusCode(OK.getStatusCode());
// Assert that getting data tables for non-tabular file fails
@@ -2948,7 +2948,7 @@ public void testGetFileDataTables() throws InterruptedException {
// Upload tabular file
String pathToTabularTestFile = "src/test/resources/tab/test.tab";
- Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadTabularFileResponse.then().assertThat().statusCode(OK.getStatusCode());
// Ensure tabular file is ingested
@@ -2992,7 +2992,7 @@ public void testSetFileCategories() {
// Upload test file
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String dataFileId = uploadResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
@@ -3060,7 +3060,7 @@ public void testSetFileTabularTags() throws InterruptedException {
// Upload tabular file
String pathToTabularTestFile = "src/test/resources/tab/test.tab";
- Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadTabularFileResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTabularTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadTabularFileResponse.then().assertThat().statusCode(OK.getStatusCode());
String tabularFileId = uploadTabularFileResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
@@ -3104,7 +3104,7 @@ public void testSetFileTabularTags() throws InterruptedException {
// Should receive an error when calling the endpoint for a non-tabular file
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String nonTabularFileId = uploadResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
@@ -3144,7 +3144,7 @@ public void testGetHasBeenDeleted() {
// Upload test file
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String dataFileId = uploadResponse.getBody().jsonPath().getString("data.files[0].dataFile.id");
@@ -3224,7 +3224,7 @@ public void testCollectionStorageQuotas() {
// Upload a small file:
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile306bytes, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile306bytes, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
// Check the recorded storage use:
@@ -3239,7 +3239,7 @@ public void testCollectionStorageQuotas() {
// Attempt to upload the second file - this should get us over the quota,
// so it should be rejected:
- uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, Json.createObjectBuilder().build(), apiToken);
+ uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(BAD_REQUEST.getStatusCode());
// We should get this error message made up from 2 Bundle strings:
expectedApiMessage = BundleUtil.getStringFromBundle("file.addreplace.error.ingest_create_file_err");
@@ -3271,7 +3271,7 @@ public void testCollectionStorageQuotas() {
// And try to upload the larger file again:
- uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, Json.createObjectBuilder().build(), apiToken);
+ uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, JsonUtil.createObjectBuilder().build(), apiToken);
// ... should work this time around:
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
@@ -3348,7 +3348,7 @@ public void testDatasetStorageQuotas() {
// Upload a small file:
- Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile306bytes, Json.createObjectBuilder().build(), apiToken);
+ Response uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile306bytes, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
// Check the recorded storage use:
@@ -3363,7 +3363,7 @@ public void testDatasetStorageQuotas() {
// Attempt to upload the second file - this should get us over the quota,
// so it should be rejected:
- uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, Json.createObjectBuilder().build(), apiToken);
+ uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, JsonUtil.createObjectBuilder().build(), apiToken);
uploadResponse.then().assertThat().statusCode(BAD_REQUEST.getStatusCode());
// We should get this error message made up from 2 Bundle strings:
expectedApiMessage = BundleUtil.getStringFromBundle("file.addreplace.error.ingest_create_file_err");
@@ -3395,7 +3395,7 @@ public void testDatasetStorageQuotas() {
// And try to upload the larger file again:
- uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, Json.createObjectBuilder().build(), apiToken);
+ uploadResponse = UtilIT.uploadFileViaNative(Integer.toString(datasetId), pathToFile1787bytes, JsonUtil.createObjectBuilder().build(), apiToken);
// ... should work this time around:
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
@@ -3553,7 +3553,7 @@ public void testFileCitationByVersion() throws IOException {
String datasetPid = JsonPath.from(createDatasetResponse.body().asString()).getString("data.persistentId");
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadFile.then().assertThat().statusCode(OK.getStatusCode());
Integer fileId = JsonPath.from(uploadFile.body().asString()).getInt("data.files[0].dataFile.id");
@@ -3774,11 +3774,11 @@ public void testUpdateWithEmptyFieldsAndVersionCheck() throws InterruptedExcepti
Integer datasetId = JsonPath.from(createDatasetResponse.body().asString()).getInt("data.id");
// Upload a tab file
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add(OptionalFileParams.DESCRIPTION_ATTR_NAME, "my description")
.add(OptionalFileParams.DIRECTORY_LABEL_ATTR_NAME, "data/subdir1")
.add(OptionalFileParams.PROVENANCE_FREEFORM_ATTR_NAME, "prov Free Form")
- .add(OptionalFileParams.CATEGORIES_ATTR_NAME, Json.createArrayBuilder().add("Data"));
+ .add(OptionalFileParams.CATEGORIES_ATTR_NAME, JsonUtil.createArrayBuilder().add("Data"));
String pathToTestFile = "src/test/resources/tab/test.tab";
Response uploadFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToTestFile, json.build(), apiToken);
uploadFile.prettyPrint();
@@ -3787,8 +3787,8 @@ public void testUpdateWithEmptyFieldsAndVersionCheck() throws InterruptedExcepti
assertTrue(UtilIT.sleepForLock(datasetId, "Ingest", apiToken, UtilIT.MAXIMUM_INGEST_LOCK_DURATION), "Failed test if Ingest Lock exceeds max duration " + pathToTestFile);
// Can't add tags until after the file is ingested and determined to be a tabular file
- JsonObjectBuilder updateFileJson = Json.createObjectBuilder()
- .add(OptionalFileParams.FILE_DATA_TAGS_ATTR_NAME, Json.createArrayBuilder().add("Survey"));
+ JsonObjectBuilder updateFileJson = JsonUtil.createObjectBuilder()
+ .add(OptionalFileParams.FILE_DATA_TAGS_ATTR_NAME, JsonUtil.createArrayBuilder().add("Survey"));
Response updateFileResponse = UtilIT.updateFileMetadata(String.valueOf(fileId), updateFileJson.build().toString(), apiToken);
updateFileResponse.prettyPrint();
@@ -3815,13 +3815,13 @@ public void testUpdateWithEmptyFieldsAndVersionCheck() throws InterruptedExcepti
String lastUpdateTime = String.valueOf(JsonPath.from(getFile.body().asString()).getString("data.dataFile.lastUpdateTime"));
// first user updates which creates a new DRAFT version
- json = Json.createObjectBuilder()
+ json = JsonUtil.createObjectBuilder()
.add(OptionalFileParams.DESCRIPTION_ATTR_NAME, "")
.add(OptionalFileParams.LABEL_ATTR_NAME, "test.tab")
.add(OptionalFileParams.DIRECTORY_LABEL_ATTR_NAME, "")
.add(OptionalFileParams.PROVENANCE_FREEFORM_ATTR_NAME, "")
- .add(OptionalFileParams.CATEGORIES_ATTR_NAME, Json.createArrayBuilder())
- .add(OptionalFileParams.FILE_DATA_TAGS_ATTR_NAME, Json.createArrayBuilder());
+ .add(OptionalFileParams.CATEGORIES_ATTR_NAME, JsonUtil.createArrayBuilder())
+ .add(OptionalFileParams.FILE_DATA_TAGS_ATTR_NAME, JsonUtil.createArrayBuilder());
Response updateResponse = UtilIT.updateFileMetadata(String.valueOf(fileId), json.build().toString(), apiToken, lastUpdateTime);
updateResponse.prettyPrint();
updateResponse.then().assertThat().statusCode(OK.getStatusCode());
@@ -3842,7 +3842,7 @@ public void testUpdateWithEmptyFieldsAndVersionCheck() throws InterruptedExcepti
assertTrue(!latestUpdateTime.equalsIgnoreCase(lastUpdateTime));
// Second user updates the base version which should fail since it's already been updated
- json = Json.createObjectBuilder()
+ json = JsonUtil.createObjectBuilder()
.add(OptionalFileParams.DESCRIPTION_ATTR_NAME, "my new description");
updateResponse = UtilIT.updateFileMetadata(String.valueOf(fileId), json.build().toString(), apiToken, lastUpdateTime);
updateResponse.prettyPrint();
@@ -3932,24 +3932,24 @@ public void testDownloadFileWithGuestbookResponse() throws IOException, JsonPars
assertEquals(2, getGuestbooksResponse.getBody().jsonPath().getList("data").size());
// Upload files
- JsonObjectBuilder json1 = Json.createObjectBuilder().add("description", "my description1").add("directoryLabel", directoryLabel).add("categories", Json.createArrayBuilder().add("Data"));
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder().add("description", "my description1").add("directoryLabel", directoryLabel).add("categories", JsonUtil.createArrayBuilder().add("Data"));
Response uploadResponse = UtilIT.uploadFileViaNative(datasetId.toString(), "src/main/webapp/resources/images/dataverseproject.png", json1.build(), ownerApiToken);
uploadResponse.prettyPrint();
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
Integer fileId1 = JsonPath.from(uploadResponse.body().asString()).getInt("data.files[0].dataFile.id");
- JsonObjectBuilder json2 = Json.createObjectBuilder().add("description", "my description2").add("directoryLabel", directoryLabel).add("categories", Json.createArrayBuilder().add("Data"));
+ JsonObjectBuilder json2 = JsonUtil.createObjectBuilder().add("description", "my description2").add("directoryLabel", directoryLabel).add("categories", JsonUtil.createArrayBuilder().add("Data"));
uploadResponse = UtilIT.uploadFileViaNative(datasetId.toString(), "src/main/webapp/resources/images/orcid_16x16.png", json2.build(), ownerApiToken);
uploadResponse.prettyPrint();
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
Integer fileId2 = JsonPath.from(uploadResponse.body().asString()).getInt("data.files[0].dataFile.id");
- JsonObjectBuilder json3 = Json.createObjectBuilder().add("description", "my description3").add("directoryLabel", directoryLabel).add("categories", Json.createArrayBuilder().add("Data"));
+ JsonObjectBuilder json3 = JsonUtil.createObjectBuilder().add("description", "my description3").add("directoryLabel", directoryLabel).add("categories", JsonUtil.createArrayBuilder().add("Data"));
uploadResponse = UtilIT.uploadFileViaNative(datasetId.toString(), "src/main/webapp/resources/images/cc0.png", json3.build(), ownerApiToken);
uploadResponse.prettyPrint();
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
Integer fileId3 = JsonPath.from(uploadResponse.body().asString()).getInt("data.files[0].dataFile.id");
UtilIT.enableSetting(SettingsServiceBean.Key.FilePIDsEnabled);
- JsonObjectBuilder json4 = Json.createObjectBuilder().add("description", "my description4").add("directoryLabel", directoryLabel).add("categories", Json.createArrayBuilder().add("Data"));
+ JsonObjectBuilder json4 = JsonUtil.createObjectBuilder().add("description", "my description4").add("directoryLabel", directoryLabel).add("categories", JsonUtil.createArrayBuilder().add("Data"));
uploadResponse = UtilIT.uploadFileViaNative(datasetId.toString(), "src/main/webapp/resources/images/Robot-Icon_2.png", json4.build(), ownerApiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
uploadResponse.prettyPrint();
@@ -4151,7 +4151,7 @@ public void testGetFileCitationFormatted() {
Integer datasetId = JsonPath.from(createDatasetResponse.body().asString()).getInt("data.id");
String pathToTestFile = "src/test/resources/images/coffeeshop.png";
- Response uploadFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToTestFile, Json.createObjectBuilder().build(), apiToken);
+ Response uploadFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToTestFile, JsonUtil.createObjectBuilder().build(), apiToken);
uploadFile.then().assertThat().statusCode(OK.getStatusCode());
String fileId = JsonPath.from(uploadFile.body().asString()).getString("data.files[0].dataFile.id");
@@ -4245,7 +4245,7 @@ public void testDownloadFileWithGuestbookResponseUsingBearerToken() throws IOExc
Guestbook guestbook = UtilIT.createRandomGuestbook(dataverseAlias, persistentId, ownerApiToken);
// Upload files
- JsonObjectBuilder json1 = Json.createObjectBuilder().add("description", "my description1").add("directoryLabel", "data/subdir1").add("categories", Json.createArrayBuilder().add("Data"));
+ JsonObjectBuilder json1 = JsonUtil.createObjectBuilder().add("description", "my description1").add("directoryLabel", "data/subdir1").add("categories", JsonUtil.createArrayBuilder().add("Data"));
Response uploadResponse = UtilIT.uploadFileViaNative(datasetId.toString(), "src/main/webapp/resources/images/dataverseproject.png", json1.build(), ownerApiToken);
uploadResponse.then().assertThat().statusCode(OK.getStatusCode());
String filePersistentId = JsonPath.from(uploadResponse.body().asString()).getString("data.files[0].dataFile.persistentId");
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/FitsIT.java b/src/test/java/edu/harvard/iq/dataverse/api/FitsIT.java
index e788efc9c87..6c23eab0b8b 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/FitsIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/FitsIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import static io.restassured.path.json.JsonPath.with;
import io.restassured.response.Response;
@@ -36,7 +37,7 @@ public void testAstroFieldsFromFits() throws IOException {
String dataverseAlias = UtilIT.getAliasFromResponse(createDataverseResponse);
- Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, Json.createArrayBuilder().add("citation").add("astrophysics"), apiToken);
+ Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, JsonUtil.createArrayBuilder().add("citation").add("astrophysics"), apiToken);
setMetadataBlocks.prettyPrint();
setMetadataBlocks.then().assertThat().statusCode(OK.getStatusCode());
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/InReviewWorkflowIT.java b/src/test/java/edu/harvard/iq/dataverse/api/InReviewWorkflowIT.java
index 6aaefb97e43..51df549fc36 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/InReviewWorkflowIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/InReviewWorkflowIT.java
@@ -1,6 +1,7 @@
package edu.harvard.iq.dataverse.api;
import edu.harvard.iq.dataverse.util.BundleUtil;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.path.xml.XmlPath;
@@ -137,7 +138,7 @@ public void testCuratorSendsCommentsToAuthor() {
.statusCode(OK.getStatusCode());
String joeRandomComments = "Joe Random says you'll never graduate.";
- JsonObjectBuilder joeRandObj = Json.createObjectBuilder();
+ JsonObjectBuilder joeRandObj = JsonUtil.createObjectBuilder();
joeRandObj.add("reasonForReturn", joeRandomComments);
Response curatorChecksNotificationsAndFindsWorkToDo = UtilIT.getNotifications(curatorApiToken);
@@ -234,7 +235,7 @@ public void testCuratorSendsCommentsToAuthor() {
boolean exerciseConcurrentModificationException = false;
if (exerciseConcurrentModificationException) {
String comments = "How do we feel about concurrency?";
- JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonObjectBuilder = JsonUtil.createObjectBuilder();
jsonObjectBuilder.add("reasonForReturn", comments);
Response returnToAuthor = UtilIT.returnDatasetToAuthor(datasetPersistentId, jsonObjectBuilder.build(), curatorApiToken);
returnToAuthor.prettyPrint();
@@ -285,7 +286,7 @@ public void testCuratorSendsCommentsToAuthor() {
// TODO: test where curator neglecting to leave a comment. Should fail with "reason for return" required.
String noComments = "";
- JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonObjectBuilder = JsonUtil.createObjectBuilder();
jsonObjectBuilder.add("reasonForReturn", noComments);
Response returnToAuthorNoComment = UtilIT.returnDatasetToAuthor(datasetPersistentId, jsonObjectBuilder.build(), curatorApiToken);
returnToAuthorNoComment.prettyPrint();
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/InvalidCharactersIT.java b/src/test/java/edu/harvard/iq/dataverse/api/InvalidCharactersIT.java
index 2cd7942cb5f..b987d0c41f7 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/InvalidCharactersIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/InvalidCharactersIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.response.Response;
import java.io.File;
@@ -51,9 +52,9 @@ public void testInvalidCharacters() throws IOException {
String badCharacter = "(\f)"; // form feed (also \u000C)
// badCharacter = "{\u0002}"; // start of text, reported problem with exports.
- JsonObjectBuilder jsonUpdateObject = Json.createObjectBuilder().add("fields",
- Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ JsonObjectBuilder jsonUpdateObject = JsonUtil.createObjectBuilder().add("fields",
+ JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", "MyTitle " + badCharacter)
));
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/IpGroupsIT.java b/src/test/java/edu/harvard/iq/dataverse/api/IpGroupsIT.java
index 67ab63bead6..d00dead58b3 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/IpGroupsIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/IpGroupsIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -120,12 +121,12 @@ public void testDownloadFile() {
Response downloadFileNoPrivs = UtilIT.downloadFile(fileId.intValue(), userWithNoRolesApiToken);
assertEquals(FORBIDDEN.getStatusCode(), downloadFileNoPrivs.getStatusCode());
- JsonObjectBuilder ipGroupAllJson = Json.createObjectBuilder();
+ JsonObjectBuilder ipGroupAllJson = JsonUtil.createObjectBuilder();
String uniqueIdentifierForIpGroup = "ipGroup" + UtilIT.getRandomIdentifier();
ipGroupAllJson.add("alias", uniqueIdentifierForIpGroup);
ipGroupAllJson.add("name", "An IP Group that matches all IP addresses and has a unique identifier.");
- ipGroupAllJson.add("ranges", Json.createArrayBuilder()
- .add(Json.createArrayBuilder()
+ ipGroupAllJson.add("ranges", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createArrayBuilder()
.add("0.0.0.0")
.add("255.255.255.255")
));
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/JsonLDExportIT.java b/src/test/java/edu/harvard/iq/dataverse/api/JsonLDExportIT.java
index b07198e9f0d..e541abac0a2 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/JsonLDExportIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/JsonLDExportIT.java
@@ -4,6 +4,7 @@
import static org.hamcrest.CoreMatchers.*;
import static org.junit.jupiter.api.Assertions.*;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.response.Response;
import jakarta.json.Json;
@@ -67,7 +68,7 @@ public void testJsonLDExportWithIncompleteHtmlTagsInFileDescription() {
String problematicDescription =
"File contains -Ddataverse.files.trsa.download-redirect=true
*/
- JsonObjectBuilder remoteFileJson = Json.createObjectBuilder()
+ JsonObjectBuilder remoteFileJson = JsonUtil.createObjectBuilder()
.add("description", "A remote image.")
.add("storageIdentifier", "trsa://themes/custom/qdr/images/CoreTrustSeal-logo-transparent.png")
.add("checksumType", "MD5")
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/ReviewsIT.java b/src/test/java/edu/harvard/iq/dataverse/api/ReviewsIT.java
index 5dd977b301f..5980d5d9cea 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/ReviewsIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/ReviewsIT.java
@@ -113,7 +113,7 @@ private static void ensureDatasetTypeIsPresent(String name, String displayName,
.add("name", name)
.add("displayName", displayName)
.add("description", description)
- .add("linkedMetadataBlocks", Json.createArrayBuilder()
+ .add("linkedMetadataBlocks", JsonUtil.createArrayBuilder()
.add("review")
)
.build().toString();
@@ -156,29 +156,29 @@ public void testCreateReview() {
String reviewTitle = "Review of " + itemReviewedTitle;
String authorName = "Wazowski, Mike";
String authorEmail = "mwazowski@mailinator.com";
- JsonObjectBuilder jsonForCreatingReview = Json.createObjectBuilder()
+ JsonObjectBuilder jsonForCreatingReview = JsonUtil.createObjectBuilder()
/**
* See above where this type is added to the installation and
* therefore available for use.
*/
.add("datasetType", DatasetType.DATASET_TYPE_REVIEW)
- .add("datasetVersion", Json.createObjectBuilder()
- .add("license", Json.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("license", JsonUtil.createObjectBuilder()
.add("name", "CC0 1.0")
.add("uri", "http://creativecommons.org/publicdomain/zero/1.0"))
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", reviewTitle)
.add("typeClass", "primitive")
.add("multiple", false))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", authorName)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -187,11 +187,11 @@ public void testCreateReview() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "author"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", authorEmail)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -200,11 +200,11 @@ public void testCreateReview() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "datasetContact"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value",
"This is a review of a dataset.")
.add("typeClass", "primitive")
@@ -214,29 +214,29 @@ public void testCreateReview() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "dsDescription"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Medicine, Health and Life Sciences"))
.add("typeClass", "controlledVocabulary")
.add("multiple", true)
.add("typeName", "subject"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createObjectBuilder()
.add("itemReviewedUrl",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", itemReviewedUrl)
.add("typeClass", "primitive")
.add("multiple", false)
.add("typeName", "itemReviewedUrl"))
.add("itemReviewedType",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Dataset")
.add("typeClass",
"controlledVocabulary")
.add("multiple", false)
.add("typeName", "itemReviewedType"))
.add("itemReviewedCitation",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", itemReviewedCitation)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -288,29 +288,29 @@ public void testCreateReviewRequiredFields() {
String reviewTitle = "Review of " + itemReviewedTitle;
String authorName = "Wazowski, Mike";
String authorEmail = "mwazowski@mailinator.com";
- JsonObjectBuilder jsonForCreatingReview = Json.createObjectBuilder()
+ JsonObjectBuilder jsonForCreatingReview = JsonUtil.createObjectBuilder()
/**
* See above where this type is added to the installation and
* therefore available for use.
*/
.add("datasetType", DatasetType.DATASET_TYPE_REVIEW)
- .add("datasetVersion", Json.createObjectBuilder()
- .add("license", Json.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("license", JsonUtil.createObjectBuilder()
.add("name", "CC0 1.0")
.add("uri", "http://creativecommons.org/publicdomain/zero/1.0"))
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", reviewTitle)
.add("typeClass", "primitive")
.add("multiple", false))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", authorName)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -319,11 +319,11 @@ public void testCreateReviewRequiredFields() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "author"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", authorEmail)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -332,11 +332,11 @@ public void testCreateReviewRequiredFields() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "datasetContact"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value",
"This is a review of a dataset.")
.add("typeClass", "primitive")
@@ -346,8 +346,8 @@ public void testCreateReviewRequiredFields() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "dsDescription"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Medicine, Health and Life Sciences"))
.add("typeClass", "controlledVocabulary")
.add("multiple", true)
@@ -465,7 +465,7 @@ public void testLocalReviews() {
.body("data.allowedDatasetTypes[0].description",
is("A review of a dataset compiled by the expert community."));
- Response setMetadataBlocks = UtilIT.setMetadataBlocks(collectionAliasReviews, Json.createArrayBuilder().add("citation").add("rubric_trusteddatadimensionsintensities"), apiTokenReviewer);
+ Response setMetadataBlocks = UtilIT.setMetadataBlocks(collectionAliasReviews, JsonUtil.createArrayBuilder().add("citation").add("rubric_trusteddatadimensionsintensities"), apiTokenReviewer);
setMetadataBlocks.prettyPrint();
setMetadataBlocks.then().assertThat().statusCode(OK.getStatusCode());
@@ -475,29 +475,29 @@ public void testLocalReviews() {
String reviewTitle = "Review of " + itemReviewedTitle;
String authorName = "Wazowski, Mike";
String authorEmail = "mwazowski@mailinator.com";
- JsonObjectBuilder jsonForCreatingReview = Json.createObjectBuilder()
+ JsonObjectBuilder jsonForCreatingReview = JsonUtil.createObjectBuilder()
/**
* See above where this type is added to the installation and
* therefore available for use.
*/
.add("datasetType", DatasetType.DATASET_TYPE_REVIEW)
- .add("datasetVersion", Json.createObjectBuilder()
- .add("license", Json.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("license", JsonUtil.createObjectBuilder()
.add("name", "CC0 1.0")
.add("uri", "http://creativecommons.org/publicdomain/zero/1.0"))
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", reviewTitle)
.add("typeClass", "primitive")
.add("multiple", false))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", authorName)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -506,11 +506,11 @@ public void testLocalReviews() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "author"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", authorEmail)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -519,11 +519,11 @@ public void testLocalReviews() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "datasetContact"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value",
"This is a review of a dataset.")
.add("typeClass", "primitive")
@@ -533,29 +533,29 @@ public void testLocalReviews() {
.add("typeClass", "compound")
.add("multiple", true)
.add("typeName", "dsDescription"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Medicine, Health and Life Sciences"))
.add("typeClass", "controlledVocabulary")
.add("multiple", true)
.add("typeName", "subject"))
- .add(Json.createObjectBuilder()
- .add("value", Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createObjectBuilder()
.add("itemReviewedUrl",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", itemReviewedUrl)
.add("typeClass", "primitive")
.add("multiple", false)
.add("typeName", "itemReviewedUrl"))
.add("itemReviewedType",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Dataset")
.add("typeClass",
"controlledVocabulary")
.add("multiple", false)
.add("typeName", "itemReviewedType"))
.add("itemReviewedCitation",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", itemReviewedCitation)
.add("typeClass", "primitive")
.add("multiple", false)
@@ -564,34 +564,34 @@ public void testLocalReviews() {
.add("typeClass", "compound")
.add("multiple", false)
.add("typeName", "itemReviewed"))))
- .add("rubric_trusteddatadimensionsintensities", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("rubric_trusteddatadimensionsintensities", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "authorAndProvenance")
.add("value", "Medium")
.add("typeClass", "controlledVocabulary")
.add("multiple", false))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "integrityAndUsability")
.add("value", "High")
.add("typeClass", "controlledVocabulary")
.add("multiple", false))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "fitnessForScopeAndContextualRelevance")
.add("value", "Medium")
.add("typeClass", "controlledVocabulary")
.add("multiple", false))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "licensingAndLegalClarity")
.add("value", "High")
.add("typeClass", "controlledVocabulary")
.add("multiple", false))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "transparencyOfMethodsAndDocumentation")
.add("value", "Low")
.add("typeClass", "controlledVocabulary")
.add("multiple", false))
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "biasEquityAndRepresentativeness")
.add("value", "Low")
.add("typeClass", "controlledVocabulary")
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/SavedSearchIT.java b/src/test/java/edu/harvard/iq/dataverse/api/SavedSearchIT.java
index 08ebec31cd6..c736bca3987 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/SavedSearchIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/SavedSearchIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -140,12 +141,12 @@ public void testSavedSearches() {
public String createSavedSearchJson(String query, Integer creatorId, Integer definitionPointId, String... filterQueries) {
- JsonArrayBuilder arr = Json.createArrayBuilder();
+ JsonArrayBuilder arr = JsonUtil.createArrayBuilder();
for (String filterQuery : filterQueries) {
arr.add(filterQuery);
}
- JsonObjectBuilder json = Json.createObjectBuilder();
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder();
if(query != null) json.add("query", query);
if(creatorId != null) json.add("creatorId", creatorId);
if(definitionPointId != null) json.add("definitionPointId", definitionPointId);
@@ -155,12 +156,12 @@ public String createSavedSearchJson(String query, Integer creatorId, Integer def
public String createSavedSearchJson(String query, String creatorId, String definitionPointId, String... filterQueries) {
- JsonArrayBuilder arr = Json.createArrayBuilder();
+ JsonArrayBuilder arr = JsonUtil.createArrayBuilder();
for (String filterQuery : filterQueries) {
arr.add(filterQuery);
}
- JsonObjectBuilder json = Json.createObjectBuilder();
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder();
if(query != null) json.add("query", query);
if(creatorId != null) json.add("creatorId", creatorId);
if(definitionPointId != null) json.add("definitionPointId", definitionPointId);
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/SearchIT.java b/src/test/java/edu/harvard/iq/dataverse/api/SearchIT.java
index 513a9f07f7c..410a72a1054 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/SearchIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/SearchIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -404,7 +405,7 @@ public void testDatasetThumbnail() {
logger.info("Dataset created, no thumbnail expected:");
Response getThumbnail1 = UtilIT.getDatasetThumbnailMetadata(datasetId, apiToken);
getThumbnail1.prettyPrint();
- JsonObject emptyObject = Json.createObjectBuilder().build();
+ JsonObject emptyObject = JsonUtil.createObjectBuilder().build();
getThumbnail1.then().assertThat()
// .body("data", CoreMatchers.equalTo(emptyObject))
.body("data.isUseGenericThumbnail", CoreMatchers.equalTo(false))
@@ -443,7 +444,7 @@ public void testDatasetThumbnail() {
Response thumbnailCandidates1 = UtilIT.showDatasetThumbnailCandidates(datasetPersistentId, apiToken);
thumbnailCandidates1.prettyPrint();
- JsonArray emptyArray = Json.createArrayBuilder().build();
+ JsonArray emptyArray = JsonUtil.createArrayBuilder().build();
thumbnailCandidates1.then().assertThat()
.body("data", CoreMatchers.equalTo(emptyArray))
.statusCode(200);
@@ -1136,26 +1137,26 @@ public void testGeospatialSearch() {
createDataverseResponse.prettyPrint();
String dataverseAlias = UtilIT.getAliasFromResponse(createDataverseResponse);
- Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, Json.createArrayBuilder().add("citation").add("geospatial"), apiToken);
+ Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, JsonUtil.createArrayBuilder().add("citation").add("geospatial"), apiToken);
setMetadataBlocks.prettyPrint();
setMetadataBlocks.then().assertThat().statusCode(OK.getStatusCode());
- JsonObjectBuilder datasetJson = Json.createObjectBuilder()
- .add("datasetVersion", Json.createObjectBuilder()
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ JsonObjectBuilder datasetJson = JsonUtil.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", "Dataverse HQ")
.add("typeClass", "primitive")
.add("multiple", false)
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Simpson, Homer")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1166,11 +1167,11 @@ public void testGeospatialSearch() {
.add("multiple", true)
.add("typeName", "author")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "hsimpson@mailinator.com")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1181,11 +1182,11 @@ public void testGeospatialSearch() {
.add("multiple", true)
.add("typeName", "datasetContact")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Headquarters for Dataverse.")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1196,8 +1197,8 @@ public void testGeospatialSearch() {
.add("multiple", true)
.add("typeName", "dsDescription")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Other")
)
.add("typeClass", "controlledVocabulary")
@@ -1206,39 +1207,39 @@ public void testGeospatialSearch() {
)
)
)
- .add("geospatial", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("geospatial", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "geographicBoundingBox")
.add("typeClass", "compound")
.add("multiple", true)
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
// The box is roughly on Cambridge, MA
// See https://linestrings.com/bbox/#-71.187346,42.33661,-71.043056,42.409599
.add("westLongitude",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "-71.187346")
.add("typeClass", "primitive")
.add("multiple", false)
.add("typeName", "westLongitude")
)
.add("southLatitude",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "42.33661")
.add("typeClass", "primitive")
.add("multiple", false)
.add("typeName", "southLatitude")
)
.add("eastLongitude",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "-71.043056")
.add("typeClass", "primitive")
.add("multiple", false)
.add("typeName", "eastLongitude")
)
.add("northLatitude",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "42.409599")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1325,26 +1326,26 @@ public void testRangeQueries() {
// Using the "astrophysics" block because it contains all field types relevant for range queries
// (int, float and date)
- Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, Json.createArrayBuilder().add("citation").add("astrophysics"), apiToken);
+ Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, JsonUtil.createArrayBuilder().add("citation").add("astrophysics"), apiToken);
setMetadataBlocks.prettyPrint();
setMetadataBlocks.then().assertThat().statusCode(OK.getStatusCode());
- JsonObjectBuilder datasetJson = Json.createObjectBuilder()
- .add("datasetVersion", Json.createObjectBuilder()
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ JsonObjectBuilder datasetJson = JsonUtil.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", "Test Astrophysics Dataset")
.add("typeClass", "primitive")
.add("multiple", false)
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Simpson, Homer")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1355,11 +1356,11 @@ public void testRangeQueries() {
.add("multiple", true)
.add("typeName", "author")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "hsimpson@mailinator.com")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1370,11 +1371,11 @@ public void testRangeQueries() {
.add("multiple", true)
.add("typeName", "datasetContact")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "This is a test dataset.")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1385,8 +1386,8 @@ public void testRangeQueries() {
.add("multiple", true)
.add("typeName", "dsDescription")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Other")
)
.add("typeClass", "controlledVocabulary")
@@ -1395,16 +1396,16 @@ public void testRangeQueries() {
)
)
)
- .add("astrophysics", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("astrophysics", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "coverage.Temporal")
.add("typeClass", "compound")
.add("multiple", true)
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("coverage.Temporal.StartTime",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "2015-01-01")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1413,13 +1414,13 @@ public void testRangeQueries() {
)
)
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "coverage.ObjectCount")
.add("typeClass", "primitive")
.add("multiple", false)
.add("value", "9000")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "coverage.SkyFraction")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1516,7 +1517,7 @@ public void testSearchWithInvalidDateField() {
createDataverseResponse.prettyPrint();
String dataverseAlias = UtilIT.getAliasFromResponse(createDataverseResponse);
- Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, Json.createArrayBuilder().add("citation"), apiToken);
+ Response setMetadataBlocks = UtilIT.setMetadataBlocks(dataverseAlias, JsonUtil.createArrayBuilder().add("citation"), apiToken);
setMetadataBlocks.prettyPrint();
setMetadataBlocks.then().assertThat().statusCode(OK.getStatusCode());
@@ -1524,22 +1525,22 @@ public void testSearchWithInvalidDateField() {
// (ISO-8601 format, e.g. YYYY-MM-DDThh:mm:ssZ, YYYYY-MM-DD, YYYY-MM, YYYY)
// (See: https://solr.apache.org/guide/solr/latest/indexing-guide/date-formatting-math.html)
// So the date currently cannot be indexed
- JsonObjectBuilder datasetJson = Json.createObjectBuilder()
- .add("datasetVersion", Json.createObjectBuilder()
- .add("metadataBlocks", Json.createObjectBuilder()
- .add("citation", Json.createObjectBuilder()
- .add("fields", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ JsonObjectBuilder datasetJson = JsonUtil.createObjectBuilder()
+ .add("datasetVersion", JsonUtil.createObjectBuilder()
+ .add("metadataBlocks", JsonUtil.createObjectBuilder()
+ .add("citation", JsonUtil.createObjectBuilder()
+ .add("fields", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "title")
.add("value", "Test Dataset")
.add("typeClass", "primitive")
.add("multiple", false)
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("authorName",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "Simpson, Homer")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1550,11 +1551,11 @@ public void testSearchWithInvalidDateField() {
.add("multiple", true)
.add("typeName", "author")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetContactEmail",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "hsimpson@mailinator.com")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1565,11 +1566,11 @@ public void testSearchWithInvalidDateField() {
.add("multiple", true)
.add("typeName", "datasetContact")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dsDescriptionValue",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "This is a test dataset.")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1580,22 +1581,22 @@ public void testSearchWithInvalidDateField() {
.add("multiple", true)
.add("typeName", "dsDescription")
)
- .add(Json.createObjectBuilder()
- .add("value", Json.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
.add("Other")
)
.add("typeClass", "controlledVocabulary")
.add("multiple", true)
.add("typeName", "subject")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("typeName", "timePeriodCovered")
.add("typeClass", "compound")
.add("multiple", true)
- .add("value", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ .add("value", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("timePeriodCoveredStart",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("value", "15-01-01")
.add("typeClass", "primitive")
.add("multiple", false)
@@ -1981,10 +1982,10 @@ public void testSearchFilesAndUrlImages() throws InterruptedException {
.statusCode(200);
pathToFile = "src/test/resources/tab/test.tab";
String searchableUniqueId = "testtab"+ UUID.randomUUID().toString().substring(0, 8); // so the search only returns 1 file
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", searchableUniqueId)
.add("restrict", "true")
- .add("categories", Json.createArrayBuilder().add("Data"));
+ .add("categories", JsonUtil.createArrayBuilder().add("Data"));
Response uploadTabFile = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile, json.build(), apiToken);
uploadTabFile.prettyPrint();
uploadTabFile.then().assertThat()
@@ -2464,10 +2465,10 @@ public void testWithThumbnailAutoSelect() {
}
private long uploadFile(Integer datasetId, String pathToFile, String apiToken) {
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "Test Data")
.add("directoryLabel", "data/subdir1")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
Response addResponse = UtilIT.uploadFileViaNative(datasetId.toString(), pathToFile, json.build(), apiToken);
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/SendFeedbackApiIT.java b/src/test/java/edu/harvard/iq/dataverse/api/SendFeedbackApiIT.java
index f2fd80bbf51..f1f10c57880 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/SendFeedbackApiIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/SendFeedbackApiIT.java
@@ -2,6 +2,7 @@
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
import edu.harvard.iq.dataverse.util.BundleUtil;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
@@ -40,7 +41,7 @@ public void testBadJson() {
@Test
public void testSupportRequest() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("fromEmail", "from@mailinator.com");
job.add("subject", "Help!");
job.add("body", "I need help.");
@@ -54,7 +55,7 @@ public void testSupportRequest() {
@Test
public void testSendFeedbackOnRootDataverse() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
long rootDataverseId = 1;
job.add("targetId", rootDataverseId);
job.add("fromEmail", "from@mailinator.com");
@@ -67,7 +68,7 @@ public void testSendFeedbackOnRootDataverse() {
response.then().assertThat()
.statusCode(OK.getStatusCode());
- job = Json.createObjectBuilder();
+ job = JsonUtil.createObjectBuilder();
job.add("identifier", "root");
job.add("fromEmail", "from@mailinator.com");
job.add("toEmail", "to@mailinator.com");
@@ -119,14 +120,14 @@ public void testSendFeedbackOnDataset() {
UtilIT.setSetting(SettingsServiceBean.Key.ContactFeedbackMessageSizeLimit, "0");
// Test with no body/body length =0
- response = UtilIT.sendFeedback(Json.createObjectBuilder().add("targetId", datasetId).add("subject", "collaboration").add("body", ""), apiToken);
+ response = UtilIT.sendFeedback(JsonUtil.createObjectBuilder().add("targetId", datasetId).add("subject", "collaboration").add("body", ""), apiToken);
response.prettyPrint();
response.then().assertThat()
.statusCode(BAD_REQUEST.getStatusCode())
.body("message", CoreMatchers.equalTo(BundleUtil.getStringFromBundle("sendfeedback.body.error.isEmpty")));
// Test with missing subject
- response = UtilIT.sendFeedback(Json.createObjectBuilder().add("targetId", datasetId).add("body", ""), apiToken);
+ response = UtilIT.sendFeedback(JsonUtil.createObjectBuilder().add("targetId", datasetId).add("body", ""), apiToken);
response.prettyPrint();
response.then().assertThat()
.statusCode(BAD_REQUEST.getStatusCode())
@@ -172,7 +173,7 @@ public void testSendFeedbackOnDataset() {
}
private JsonObjectBuilder buildJsonEmail(long targetId, String identifier, String fromEmail) {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
if (targetId > 0) {
job.add("targetId", targetId);
}
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/StorageSitesIT.java b/src/test/java/edu/harvard/iq/dataverse/api/StorageSitesIT.java
index 89208997ee3..2732ada1f44 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/StorageSitesIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/StorageSitesIT.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.api;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import io.restassured.response.Response;
import edu.harvard.iq.dataverse.locality.StorageSite;
@@ -31,7 +32,7 @@ public void testGet() {
@Test
public void testAddSite() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add(StorageSite.NAME, "myName");
job.add(StorageSite.HOSTNAME, "myHostname");
job.add(StorageSite.PRIMARY_STORAGE, true);
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/UsersIT.java b/src/test/java/edu/harvard/iq/dataverse/api/UsersIT.java
index c7ee126193c..8ccbe1272d9 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/UsersIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/UsersIT.java
@@ -1,6 +1,7 @@
package edu.harvard.iq.dataverse.api;
import edu.harvard.iq.dataverse.util.BundleUtil;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import io.restassured.RestAssured;
import static io.restassured.RestAssured.given;
@@ -187,9 +188,9 @@ public void testMergeAccounts(){
String pathToFile = "src/main/webapp/resources/images/dataverseproject.png";
- JsonObjectBuilder json = Json.createObjectBuilder()
+ JsonObjectBuilder json = JsonUtil.createObjectBuilder()
.add("description", "my description")
- .add("categories", Json.createArrayBuilder()
+ .add("categories", JsonUtil.createArrayBuilder()
.add("Data")
);
@@ -768,7 +769,7 @@ public void testRegisterOIDCUser() {
}
private Response convertUserFromBcryptToSha1(long idOfBcryptUserToConvert, String password) {
- JsonObjectBuilder data = Json.createObjectBuilder();
+ JsonObjectBuilder data = JsonUtil.createObjectBuilder();
data.add("builtinUserId", idOfBcryptUserToConvert);
data.add("password", password);
Response response = given()
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/UtilIT.java b/src/test/java/edu/harvard/iq/dataverse/api/UtilIT.java
index b6f8d66c0af..a8f9622c213 100644
--- a/src/test/java/edu/harvard/iq/dataverse/api/UtilIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/api/UtilIT.java
@@ -145,7 +145,7 @@ public static Response createUser(String username, String email) {
}
private static String getUserAsJsonString(String username, String firstName, String lastName, String email) {
- JsonObjectBuilder builder = Json.createObjectBuilder();
+ JsonObjectBuilder builder = JsonUtil.createObjectBuilder();
builder.add(USERNAME_KEY, username);
builder.add("firstName", firstName);
builder.add("lastName", lastName);
@@ -156,7 +156,7 @@ private static String getUserAsJsonString(String username, String firstName, Str
}
private static String getUserAsJsonString(String username, String firstName, String lastName) {
- JsonObjectBuilder builder = Json.createObjectBuilder();
+ JsonObjectBuilder builder = JsonUtil.createObjectBuilder();
builder.add(USERNAME_KEY, username);
builder.add("firstName", firstName);
builder.add("lastName", lastName);
@@ -258,7 +258,7 @@ public static Response auditFiles(String apiToken, Long firstId, Long lastId, St
}
private static String getAuthenticatedUserAsJsonString(String persistentUserId, String firstName, String lastName, String authenticationProviderId, String identifier) {
- JsonObjectBuilder builder = Json.createObjectBuilder();
+ JsonObjectBuilder builder = JsonUtil.createObjectBuilder();
builder.add("authenticationProviderId", authenticationProviderId);
builder.add("persistentUserId", persistentUserId);
builder.add("identifier", identifier);
@@ -415,11 +415,11 @@ static Response createSubDataverse(String alias, String category, String apiToke
}
static Response createSubDataverse(String alias, String category, String apiToken, String parentDV, String[] inputLevelNames, String[] facetIds, String[] metadataBlockNames, String affiliation) {
- JsonArrayBuilder contactArrayBuilder = Json.createArrayBuilder();
- contactArrayBuilder.add(Json.createObjectBuilder().add("contactEmail", getEmailFromUserName(getRandomIdentifier())));
- JsonArrayBuilder subjectArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder contactArrayBuilder = JsonUtil.createArrayBuilder();
+ contactArrayBuilder.add(JsonUtil.createObjectBuilder().add("contactEmail", getEmailFromUserName(getRandomIdentifier())));
+ JsonArrayBuilder subjectArrayBuilder = JsonUtil.createArrayBuilder();
subjectArrayBuilder.add("Other");
- JsonObjectBuilder objectBuilder = Json.createObjectBuilder()
+ JsonObjectBuilder objectBuilder = JsonUtil.createObjectBuilder()
.add("alias", alias)
.add("name", alias)
.add("dataverseContacts", contactArrayBuilder)
@@ -466,9 +466,9 @@ static Response updateDataverse(String alias,
Boolean inheritMetadataBlocksFromParent,
Boolean inheritFacetsFromParent,
Integer datasetFileCountLimit) {
- JsonArrayBuilder contactArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder contactArrayBuilder = JsonUtil.createArrayBuilder();
for(String contactEmail : newContactEmails) {
- contactArrayBuilder.add(Json.createObjectBuilder().add("contactEmail", contactEmail));
+ contactArrayBuilder.add(JsonUtil.createObjectBuilder().add("contactEmail", contactEmail));
}
NullSafeJsonBuilder jsonBuilder = jsonObjectBuilder()
.add("alias", newAlias)
@@ -514,12 +514,12 @@ private static void updateDataverseRequestJsonWithMetadataBlocksConfiguration(St
Boolean inheritFacetsFromParent,
Boolean inheritMetadataBlocksFromParent,
JsonObjectBuilder objectBuilder) {
- JsonObjectBuilder metadataBlocksObjectBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder metadataBlocksObjectBuilder = JsonUtil.createObjectBuilder();
if (inputLevelNames != null) {
- JsonArrayBuilder inputLevelsArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder inputLevelsArrayBuilder = JsonUtil.createArrayBuilder();
for(String inputLevelName : inputLevelNames) {
- inputLevelsArrayBuilder.add(Json.createObjectBuilder()
+ inputLevelsArrayBuilder.add(JsonUtil.createObjectBuilder()
.add("datasetFieldTypeName", inputLevelName)
.add("required", true)
.add("include", true)
@@ -529,7 +529,7 @@ private static void updateDataverseRequestJsonWithMetadataBlocksConfiguration(St
}
if (metadataBlockNames != null) {
- JsonArrayBuilder metadataBlockNamesArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder metadataBlockNamesArrayBuilder = JsonUtil.createArrayBuilder();
for(String metadataBlockName : metadataBlockNames) {
metadataBlockNamesArrayBuilder.add(metadataBlockName);
}
@@ -540,7 +540,7 @@ private static void updateDataverseRequestJsonWithMetadataBlocksConfiguration(St
}
if (facetIds != null) {
- JsonArrayBuilder facetIdsArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder facetIdsArrayBuilder = JsonUtil.createArrayBuilder();
for(String facetId : facetIds) {
facetIdsArrayBuilder.add(facetId);
}
@@ -1588,7 +1588,7 @@ private static String getTitleFromSwordStatement(String swordStatement) {
}
static Response createGroup(String dataverseToCreateGroupIn, String aliasInOwner, String displayName, String apiToken) {
- JsonObjectBuilder groupBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder groupBuilder = JsonUtil.createObjectBuilder();
groupBuilder.add("aliasInOwner", aliasInOwner);
groupBuilder.add("displayName", displayName);
Response response = given()
@@ -1626,7 +1626,7 @@ static Response deleteIpGroup(String ipGroupIdentifier) {
}
static Response addToGroup(String dataverseThatGroupBelongsIn, String groupIdentifier, List roleAssigneesToAdd, String apiToken) {
- JsonArrayBuilder groupBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder groupBuilder = JsonUtil.createArrayBuilder();
roleAssigneesToAdd.stream().forEach((string) -> {
groupBuilder.add(string);
});
@@ -1639,7 +1639,7 @@ static Response addToGroup(String dataverseThatGroupBelongsIn, String groupIdent
}
static public Response grantRoleOnDataverse(String definitionPoint, String role, String roleAssignee, String apiToken) {
- JsonObjectBuilder roleBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder roleBuilder = JsonUtil.createObjectBuilder();
roleBuilder.add("assignee", roleAssignee);
roleBuilder.add("role", role);
JsonObject roleObject = roleBuilder.build();
@@ -2842,7 +2842,7 @@ static Response getRoleAssignmentsOnDataset(String datasetId, String persistentI
static Response grantRoleOnDataset(String definitionPoint, String role, String roleAssignee, String apiToken) {
- JsonObjectBuilder roleBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder roleBuilder = JsonUtil.createObjectBuilder();
roleBuilder.add("assignee", roleAssignee);
roleBuilder.add("role", role);
@@ -4610,10 +4610,10 @@ static Response getCanDownloadAtLeastOneFile(String datasetId, String versionId,
}
static Response createFileEmbargo(Integer datasetId, Integer fileId, String dateAvailable, String apiToken) {
- JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonBuilder = JsonUtil.createObjectBuilder();
jsonBuilder.add("dateAvailable", dateAvailable);
jsonBuilder.add("reason", "This is a test embargo");
- jsonBuilder.add("fileIds", Json.createArrayBuilder().add(fileId));
+ jsonBuilder.add("fileIds", JsonUtil.createArrayBuilder().add(fileId));
String jsonString = jsonBuilder.build().toString();
return given()
.header(API_TOKEN_HTTP_HEADER, apiToken)
@@ -4624,10 +4624,10 @@ static Response createFileEmbargo(Integer datasetId, Integer fileId, String date
}
static Response createFileRetention(Integer datasetId, Integer fileId, String dateUnavailable, String apiToken) {
- JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonBuilder = JsonUtil.createObjectBuilder();
jsonBuilder.add("dateUnavailable", dateUnavailable);
jsonBuilder.add("reason", "This is a test retention");
- jsonBuilder.add("fileIds", Json.createArrayBuilder().add(fileId));
+ jsonBuilder.add("fileIds", JsonUtil.createArrayBuilder().add(fileId));
String jsonString = jsonBuilder.build().toString();
return given()
.header(API_TOKEN_HTTP_HEADER, apiToken)
@@ -4673,12 +4673,12 @@ static Response setFileCategories(String dataFileId, String apiToken, List categories, Boolean replaceData) {
- JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder jsonArrayBuilder = JsonUtil.createArrayBuilder();
for (String category : categories) {
jsonArrayBuilder.add(category);
}
String replace = replaceData != null ? "?replace=" + replaceData : "";
- JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonObjectBuilder = JsonUtil.createObjectBuilder();
jsonObjectBuilder.add("categories", jsonArrayBuilder);
String jsonString = jsonObjectBuilder.build().toString();
return given()
@@ -4691,12 +4691,12 @@ static Response setFileTabularTags(String dataFileId, String apiToken, List tabularTags, Boolean replaceData) {
- JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder jsonArrayBuilder = JsonUtil.createArrayBuilder();
for (String tabularTag : tabularTags) {
jsonArrayBuilder.add(tabularTag);
}
String replace = replaceData != null ? "?replace=" + replaceData : "";
- JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonObjectBuilder = JsonUtil.createObjectBuilder();
jsonObjectBuilder.add("tabularTags", jsonArrayBuilder);
String jsonString = jsonObjectBuilder.build().toString();
return given()
@@ -4730,7 +4730,7 @@ static Response deaccessionDataset(String datasetIdOrPersistentId, String versio
optionalQueryParam = "?persistentId=" + datasetIdOrPersistentId;
}
- JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder jsonObjectBuilder = JsonUtil.createObjectBuilder();
jsonObjectBuilder.add("deaccessionReason", deaccessionReason);
if (deaccessionForwardURL != null) {
jsonObjectBuilder.add("deaccessionForwardURL", deaccessionForwardURL);
@@ -4880,7 +4880,7 @@ static Response requestGlobusUploadPaths(Integer datasetId, JsonObject body, Str
}
public static Response updateDataverseInputLevels(String dataverseAlias, String[] inputLevelNames, boolean[] requiredInputLevels, boolean[] includedInputLevels, String apiToken) {
- JsonArrayBuilder inputLevelsArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder inputLevelsArrayBuilder = JsonUtil.createArrayBuilder();
for (int i = 0; i < inputLevelNames.length; i++) {
inputLevelsArrayBuilder.add(createInputLevelObject(inputLevelNames[i], requiredInputLevels[i], includedInputLevels[i]));
}
@@ -4892,7 +4892,7 @@ public static Response updateDataverseInputLevels(String dataverseAlias, String[
}
public static Response updateDataverseInputLevels(String dataverseAlias, String[] inputLevelNames, boolean[] requiredInputLevels, boolean[] includedInputLevels, boolean[] displayOnCreate, String apiToken) {
- JsonArrayBuilder inputLevelsArrayBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder inputLevelsArrayBuilder = JsonUtil.createArrayBuilder();
for (int i = 0; i < inputLevelNames.length; i++) {
inputLevelsArrayBuilder.add(createInputLevelObject(inputLevelNames[i], requiredInputLevels[i], includedInputLevels[i], displayOnCreate[i]));
}
@@ -4904,14 +4904,14 @@ public static Response updateDataverseInputLevels(String dataverseAlias, String[
}
private static JsonObjectBuilder createInputLevelObject(String name, boolean required, boolean include) {
- return Json.createObjectBuilder()
+ return JsonUtil.createObjectBuilder()
.add("datasetFieldTypeName", name)
.add("required", required)
.add("include", include);
}
private static JsonObjectBuilder createInputLevelObject(String name, boolean required, boolean include, boolean displayOnCreate) {
- return Json.createObjectBuilder()
+ return JsonUtil.createObjectBuilder()
.add("datasetFieldTypeName", name)
.add("required", required)
.add("include", include)
@@ -5301,8 +5301,8 @@ public static Response deleteDatasetFiles(String datasetId, JsonArray fileIds, S
}
public static Response updateDataverseInputLevelDisplayOnCreate(String dataverseAlias, String fieldTypeName, Boolean displayOnCreate, String apiToken) {
- JsonArrayBuilder inputLevelsArrayBuilder = Json.createArrayBuilder();
- JsonObjectBuilder inputLevel = Json.createObjectBuilder()
+ JsonArrayBuilder inputLevelsArrayBuilder = JsonUtil.createArrayBuilder();
+ JsonObjectBuilder inputLevel = JsonUtil.createObjectBuilder()
.add("datasetFieldTypeName", fieldTypeName)
.add("required", false)
.add("include", true);
diff --git a/src/test/java/edu/harvard/iq/dataverse/api/ldn/COARNotifyRelationshipAnnouncementTest.java b/src/test/java/edu/harvard/iq/dataverse/api/ldn/COARNotifyRelationshipAnnouncementTest.java
new file mode 100644
index 00000000000..c0f2de888e8
--- /dev/null
+++ b/src/test/java/edu/harvard/iq/dataverse/api/ldn/COARNotifyRelationshipAnnouncementTest.java
@@ -0,0 +1,46 @@
+package edu.harvard.iq.dataverse.api.ldn;
+
+import edu.harvard.iq.dataverse.DatasetServiceBean;
+import edu.harvard.iq.dataverse.DataverseRoleServiceBean;
+import edu.harvard.iq.dataverse.RoleAssigneeServiceBean;
+import edu.harvard.iq.dataverse.UserNotificationServiceBean;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class COARNotifyRelationshipAnnouncementTest {
+
+ private COARNotifyRelationshipAnnouncement handler;
+
+ @BeforeEach
+ public void setUp() {
+ DatasetServiceBean datasetService = Mockito.mock(DatasetServiceBean.class);
+ UserNotificationServiceBean userNotificationService = Mockito.mock(UserNotificationServiceBean.class);
+ DataverseRoleServiceBean roleService = Mockito.mock(DataverseRoleServiceBean.class);
+ RoleAssigneeServiceBean roleAssigneeService = Mockito.mock(RoleAssigneeServiceBean.class);
+ handler = new COARNotifyRelationshipAnnouncement(datasetService, userNotificationService, roleService, roleAssigneeService);
+ }
+
+ @Test
+ public void testIsTrustedDataCiteUrl() {
+ // Trusted DOI resolvers
+ assertTrue(handler.isTrustedDataCiteUrl("https://doi.org/10.7910/DVN/TJCLKP"));
+ assertTrue(handler.isTrustedDataCiteUrl("http://doi.org/10.7910/DVN/TJCLKP"));
+ assertTrue(handler.isTrustedDataCiteUrl("https://dx.doi.org/10.7910/DVN/TJCLKP"));
+ assertTrue(handler.isTrustedDataCiteUrl("http://dx.doi.org/10.7910/DVN/TJCLKP"));
+
+ // Invalid DOI
+ assertFalse(handler.isTrustedDataCiteUrl("https://doi.org/not-a-doi"));
+
+
+ // Untrusted sources
+ assertFalse(handler.isTrustedDataCiteUrl("https://example.com/metadata.xml"));
+ assertFalse(handler.isTrustedDataCiteUrl("https://malicious.org/doi.org/10.1234/5678"));
+
+ // Null and empty
+ assertFalse(handler.isTrustedDataCiteUrl(null));
+ assertFalse(handler.isTrustedDataCiteUrl(""));
+ }
+}
diff --git a/src/test/java/edu/harvard/iq/dataverse/authorization/providers/oauth2/impl/GoogleOAuth2APTest.java b/src/test/java/edu/harvard/iq/dataverse/authorization/providers/oauth2/impl/GoogleOAuth2APTest.java
index cfba755d2a1..e67d76cdb03 100644
--- a/src/test/java/edu/harvard/iq/dataverse/authorization/providers/oauth2/impl/GoogleOAuth2APTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/authorization/providers/oauth2/impl/GoogleOAuth2APTest.java
@@ -2,6 +2,7 @@
import edu.harvard.iq.dataverse.authorization.AuthenticatedUserDisplayInfo;
import edu.harvard.iq.dataverse.authorization.providers.oauth2.AbstractOAuth2AuthenticationProvider;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import jakarta.json.Json;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
@@ -46,7 +47,7 @@ public void testParseUserResponseRealData() {
@Test
public void testParseUserResponse() {
AbstractOAuth2AuthenticationProvider.ParsedUserResponse result
- = parseUserResponse(Json.createObjectBuilder()
+ = parseUserResponse(JsonUtil.createObjectBuilder()
.add("id", "123456")
.add("given_name", "Jane")
.add("family_name", "Doe")
diff --git a/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleServiceBeanIT.java b/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleServiceBeanIT.java
index a37f8b724fe..9c3242081b3 100644
--- a/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleServiceBeanIT.java
+++ b/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleServiceBeanIT.java
@@ -11,6 +11,8 @@
import java.util.Calendar;
import java.util.TimeZone;
import java.util.logging.Logger;
+
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.*;
@@ -106,7 +108,7 @@ private JsonObject startFileSystemImportJob(long datasetId, String url, String u
}
private static JsonObject startFileSystemImportJob(HttpResponse uploadRequest) {
- JsonObjectBuilder jab = Json.createObjectBuilder();
+ JsonObjectBuilder jab = JsonUtil.createObjectBuilder();
jab.add("status", uploadRequest.getStatus());
int status = uploadRequest.getStatus();
JsonNode body = uploadRequest.getBody();
diff --git a/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleUtilTest.java b/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleUtilTest.java
index 148d34dc5f7..c81bf8690b9 100644
--- a/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleUtilTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/datacapturemodule/DataCaptureModuleUtilTest.java
@@ -7,6 +7,8 @@
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import static edu.harvard.iq.dataverse.mocks.MocksFactory.makeAuthenticatedUser;
import java.io.UnsupportedEncodingException;
+
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import jakarta.json.Json;
import jakarta.json.JsonObject;
import jakarta.json.JsonObjectBuilder;
@@ -52,7 +54,7 @@ public void testGetScriptFromRequestOk() throws UnsupportedEncodingException {
System.out.println("getScriptFromRequestOk");
HttpResponseFactory factory = new DefaultHttpResponseFactory();
org.apache.http.HttpResponse response = factory.newHttpResponse(new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, null), null);
- JsonObjectBuilder jab = Json.createObjectBuilder();
+ JsonObjectBuilder jab = JsonUtil.createObjectBuilder();
jab.add("userId", 42);
jab.add("datasetIdentifier", "123");
jab.add("script", "#!/bin/sh");
@@ -70,7 +72,7 @@ public void testGetScriptFromRequestNotFound() throws UnsupportedEncodingExcepti
System.out.println("getScriptFromRequestNotFound");
HttpResponseFactory factory = new DefaultHttpResponseFactory();
org.apache.http.HttpResponse response = factory.newHttpResponse(new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_NOT_FOUND, null), null);
- JsonObjectBuilder jab = Json.createObjectBuilder();
+ JsonObjectBuilder jab = JsonUtil.createObjectBuilder();
jab.add("userId", 42);
jab.add("datasetIdentifier", "123");
jab.add("script", "#!/bin/sh");
diff --git a/src/test/java/edu/harvard/iq/dataverse/export/DDIExporterTest.java b/src/test/java/edu/harvard/iq/dataverse/export/DDIExporterTest.java
index 0eb231dd866..6824135d204 100644
--- a/src/test/java/edu/harvard/iq/dataverse/export/DDIExporterTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/export/DDIExporterTest.java
@@ -83,7 +83,7 @@ public void testExportDataset() throws JsonParseException, IOException, ExportEx
ExportDataProvider exportDataProviderStub = Mockito.mock(ExportDataProvider.class);
Mockito.when(exportDataProviderStub.getDatasetJson()).thenReturn(datasetDtoJson);
- Mockito.when(exportDataProviderStub.getDatasetFileDetails()).thenReturn(Json.createArrayBuilder().build());
+ Mockito.when(exportDataProviderStub.getDatasetFileDetails()).thenReturn(JsonUtil.createArrayBuilder().build());
//when
@@ -106,7 +106,7 @@ public void testExportDatasetContactEmailPresent() throws Exception {
ExportDataProvider exportDataProviderStub = Mockito.mock(ExportDataProvider.class);
Mockito.when(exportDataProviderStub.getDatasetJson()).thenReturn(json);
- Mockito.when(exportDataProviderStub.getDatasetFileDetails()).thenReturn(Json.createArrayBuilder().build());
+ Mockito.when(exportDataProviderStub.getDatasetFileDetails()).thenReturn(JsonUtil.createArrayBuilder().build());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
DDIExporter instance = new DDIExporter();
@@ -126,7 +126,7 @@ public void testExportDatasetContactEmailAbsent() throws Exception {
ExportDataProvider exportDataProviderStub = Mockito.mock(ExportDataProvider.class);
Mockito.when(exportDataProviderStub.getDatasetJson()).thenReturn(json);
- Mockito.when(exportDataProviderStub.getDatasetFileDetails()).thenReturn(Json.createArrayBuilder().build());
+ Mockito.when(exportDataProviderStub.getDatasetFileDetails()).thenReturn(JsonUtil.createArrayBuilder().build());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
DDIExporter instance = new DDIExporter();
diff --git a/src/test/java/edu/harvard/iq/dataverse/export/croissant/CroissantExportUtilTest.java b/src/test/java/edu/harvard/iq/dataverse/export/croissant/CroissantExportUtilTest.java
index aa544f7a930..414cef784d7 100644
--- a/src/test/java/edu/harvard/iq/dataverse/export/croissant/CroissantExportUtilTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/export/croissant/CroissantExportUtilTest.java
@@ -27,7 +27,7 @@ public class CroissantExportUtilTest {
void testGetReviews() throws IOException {
String content = Files.readString(Path.of("doc/sphinx-guides/source/_static/api/list-reviews.json"), StandardCharsets.UTF_8);
JsonObject apiResponseJson = JsonUtil.getJsonObject(content);
- JsonObjectBuilder job = Json.createObjectBuilder(apiResponseJson.getJsonObject("data"));
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder(apiResponseJson.getJsonObject("data"));
JsonObject result = CroissantExportUtil.getReviews(job).build();
System.out.println(prettyPrint(result));
assertTrue(result.getJsonArray("reviews").size() == 1);
diff --git a/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolHandlerTest.java b/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolHandlerTest.java
index 639a7c542c4..0d4d8e3a4a2 100644
--- a/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolHandlerTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolHandlerTest.java
@@ -41,9 +41,9 @@ public void testGetToolUrlWithOptionalQueryParameters() {
ExternalTool externalTool = new ExternalTool("displayName", "toolName", "description", externalToolTypes, scope, toolUrl, "{}", DataFileServiceBean.MIME_TYPE_TSV_ALT);
// One query parameter, not a reserved word, no {fileId} (required) used.
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("mode", "mode1")
)
)
@@ -62,9 +62,9 @@ public void testGetToolUrlWithOptionalQueryParameters() {
assertEquals("A DataFile is required.", expectedException1.getMessage());
// One query parameter, not a reserved word, no {fileMetadata} (required) used.
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("mode", "mode1")
)
)
@@ -81,12 +81,12 @@ public void testGetToolUrlWithOptionalQueryParameters() {
// Two query parameters.
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("mode", "mode1")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key2", "value2")
)
)
@@ -101,12 +101,12 @@ public void testGetToolUrlWithOptionalQueryParameters() {
assertEquals("A DataFile is required.", expectedException2.getMessage());
// Two query parameters, both reserved words, one is {fileId} which is required.
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key1", "{fileId}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key2", "{apiToken}")
)
)
@@ -129,15 +129,15 @@ public void testGetToolUrlWithOptionalQueryParameters() {
// Three query parameters, all reserved words, two {fileId}{fileMetadataId} which are required.
fmd.setId(2L);
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key1", "{fileId}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key2", "{apiToken}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key3", "{fileMetadataId}")
)
)
@@ -148,12 +148,12 @@ public void testGetToolUrlWithOptionalQueryParameters() {
assertEquals("?key1=42&key2=7196b5ce-f200-4286-8809-03ffdbc255d7&key3=2", result6);
// Two query parameters, both reserved words, no apiToken
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key1", "{fileId}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key2", "{apiToken}")
)
)
@@ -164,18 +164,18 @@ public void testGetToolUrlWithOptionalQueryParameters() {
assertEquals("?key1=42", result4);
//localeCode test
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key1", "{fileId}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key2", "{apiToken}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key3", "{fileMetadataId}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key4", "{localeCode}")
)
)
@@ -186,12 +186,12 @@ public void testGetToolUrlWithOptionalQueryParameters() {
assertEquals("?key1=42&key2=7196b5ce-f200-4286-8809-03ffdbc255d7&key3=2&key4=en", result7);
// Two query parameters, attempt to use a reserved word that doesn't exist.
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key1", "{junk}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key2", "{apiToken}")
)
)
@@ -252,15 +252,15 @@ public void testDatasetConfigureTool() {
String toolUrl = "http://example.com";
var externalTool = new ExternalTool("displayName", "toolName", "description", externalToolTypes, scope, toolUrl, "{}", DataFileServiceBean.MIME_TYPE_TSV_ALT);
- externalTool.setToolParameters(Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ externalTool.setToolParameters(JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("siteUrl", "{siteUrl}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetPid", "{datasetPid}")
)
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("localeCode", "{localeCode}")
)
)
diff --git a/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolServiceBeanTest.java b/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolServiceBeanTest.java
index d2a68ea8da6..6c3b3e8c367 100644
--- a/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolServiceBeanTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/externaltools/ExternalToolServiceBeanTest.java
@@ -14,6 +14,8 @@
import java.util.ArrayList;
import java.util.List;
+
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import jakarta.json.Json;
import jakarta.json.JsonObjectBuilder;
@@ -62,27 +64,27 @@ public void testfindAll() {
@Test
public void testParseAddExternalToolInput() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
job.add("type", "explore");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("toolUrl", "http://awesometool.com");
job.add("hasPreviewMode", "false");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileMetadataId", "{fileMetadataId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dvLocale", "{localeCode}")
.build())
.build())
@@ -114,26 +116,26 @@ public void testParseAddExternalToolInput() {
@Test
public void testParseAddFileToolFilePid() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("filePid", "{filePid}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileMetadataId", "{fileMetadataId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dvLocale", "{localeCode}")
.build())
.build())
@@ -166,17 +168,17 @@ public void testParseAddFileToolFilePid() {
@Test
public void testParseAddExternalToolInputNoFileId() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -220,23 +222,23 @@ public void testParseAddExternalToolInputEmptyString() {
@Test
public void testParseAddExternalToolInputUnknownReservedWord() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("mode", "mode1")
.build())
.build())
@@ -256,12 +258,12 @@ public void testParseAddExternalToolInputUnknownReservedWord() {
@Test
public void testParseAddExternalToolInputNoDisplayName() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("toolName", "dct");
job.add("description", "This tool is awesome.");
job.add("toolUrl", "http://awesometool.com");
job.add("hasPreviewMode", "false");
- job.add("toolParameters", Json.createObjectBuilder().build());
+ job.add("toolParameters", JsonUtil.createObjectBuilder().build());
job.add(ExternalTool.CONTENT_TYPE, DataFileServiceBean.MIME_TYPE_TSV_ALT);
String tool = job.build().toString();
System.out.println("tool: " + tool);
@@ -277,12 +279,12 @@ public void testParseAddExternalToolInputNoDisplayName() {
@Test
public void testParseAddExternalToolInputNoDescription() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "dct");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder().build());
+ job.add("toolParameters", JsonUtil.createObjectBuilder().build());
job.add(ExternalTool.CONTENT_TYPE, DataFileServiceBean.MIME_TYPE_TSV_ALT);
String tool = job.build().toString();
System.out.println("tool: " + tool);
@@ -298,14 +300,14 @@ public void testParseAddExternalToolInputNoDescription() {
@Test
public void testParseAddExternalToolInputNoToolUrl() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("hasPreviewMode", "false");
- job.add("toolParameters", Json.createObjectBuilder().build());
+ job.add("toolParameters", JsonUtil.createObjectBuilder().build());
job.add(ExternalTool.CONTENT_TYPE, DataFileServiceBean.MIME_TYPE_TSV_ALT);
String tool = job.build().toString();
System.out.println("tool: " + tool);
@@ -321,15 +323,15 @@ public void testParseAddExternalToolInputNoToolUrl() {
@Test
public void testParseAddExternalToolInputWrongType() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "dct");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("noSuchType"));
+ job.add("types", JsonUtil.createArrayBuilder().add("noSuchType"));
job.add("scope", "file");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder().build());
+ job.add("toolParameters", JsonUtil.createObjectBuilder().build());
job.add(ExternalTool.CONTENT_TYPE, DataFileServiceBean.MIME_TYPE_TSV_ALT);
String tool = job.build().toString();
System.out.println("tool: " + tool);
@@ -346,20 +348,20 @@ public void testParseAddExternalToolInputWrongType() {
@Test
public void testParseAddExternalToolInputNoContentType() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder().add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder().add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileid", "{fileId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -378,17 +380,17 @@ public void testParseAddExternalToolInputNoContentType() {
@Test
public void testParseAddDatasetToolNoRequiredFields() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "dataset");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder().add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder().add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -407,20 +409,20 @@ public void testParseAddDatasetToolNoRequiredFields() {
@Test
public void testParseAddDatasetToolDatasetId() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "dataset");
job.add("toolUrl", "http://awesometool.com");
job.add("hasPreviewMode", "true");
- job.add("toolParameters", Json.createObjectBuilder().add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder().add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetId", "{datasetId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -440,20 +442,20 @@ public void testParseAddDatasetToolDatasetId() {
@Test
public void testParseAddDatasetToolDatasetPid() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "dataset");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder().add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder().add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetPid", "{datasetPid}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -477,7 +479,7 @@ public void testParseAddDatasetToolDatasetPid() {
*/
@Test
public void testParseAddToolWithLegacyType() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
@@ -486,11 +488,11 @@ public void testParseAddToolWithLegacyType() {
job.add("toolUrl", "http://awesometool.com");
job.add("hasPreviewMode", "true");
- job.add("toolParameters", Json.createObjectBuilder().add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder().add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetId", "{datasetId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
.build())
@@ -522,25 +524,25 @@ public void testParseAddDatasetToolAllowedApiCalls() {
}
protected static ExternalTool getAllowedApiCallsTool() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "dataset");
job.add("toolUrl", "http://awesometool.com");
job.add("hasPreviewMode", "true");
- job.add("toolParameters", Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
.add("httpMethod", "GET")
.add("queryParameters",
- Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("datasetId", "{datasetId}")
)
)
- ).add("allowedApiCalls", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ ).add("allowedApiCalls", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("name", "getDataset")
.add("httpMethod", "GET")
.add("urlTemplate", "/api/v1/datasets/{datasetId}")
@@ -554,33 +556,33 @@ protected static ExternalTool getAllowedApiCallsTool() {
@Test
public void testParseAddFileToolRequireAuxFile() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add("displayName", "AwesomeTool");
job.add("toolName", "explorer");
job.add("description", "This tool is awesome.");
- job.add("types", Json.createArrayBuilder().add("explore"));
+ job.add("types", JsonUtil.createArrayBuilder().add("explore"));
job.add("scope", "file");
job.add("hasPreviewMode", "false");
job.add("toolUrl", "http://awesometool.com");
- job.add("toolParameters", Json.createObjectBuilder()
- .add("queryParameters", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("toolParameters", JsonUtil.createObjectBuilder()
+ .add("queryParameters", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("filePid", "{filePid}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("key", "{apiToken}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("fileMetadataId", "{fileMetadataId}")
.build())
- .add(Json.createObjectBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("dvLocale", "{localeCode}")
.build())
.build())
.build());
- job.add("requirements", Json.createObjectBuilder()
- .add("auxFilesExist", Json.createArrayBuilder()
- .add(Json.createObjectBuilder()
+ job.add("requirements", JsonUtil.createObjectBuilder()
+ .add("auxFilesExist", JsonUtil.createArrayBuilder()
+ .add(JsonUtil.createObjectBuilder()
.add("formatTag", "NcML")
.add("formatVersion", "0.1")
)
diff --git a/src/test/java/edu/harvard/iq/dataverse/locality/StorageSiteUtilTest.java b/src/test/java/edu/harvard/iq/dataverse/locality/StorageSiteUtilTest.java
index b2f70ba2675..92e6d62219b 100644
--- a/src/test/java/edu/harvard/iq/dataverse/locality/StorageSiteUtilTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/locality/StorageSiteUtilTest.java
@@ -14,7 +14,7 @@ public class StorageSiteUtilTest {
@Test
public void testParse() throws Exception {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add(StorageSite.HOSTNAME, "myHostname");
job.add(StorageSite.NAME, "myName");
job.add(StorageSite.PRIMARY_STORAGE, true);
@@ -27,7 +27,7 @@ public void testParse() throws Exception {
@Test
void testMissingHostname() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add(StorageSite.NAME, "myName");
job.add(StorageSite.PRIMARY_STORAGE, true);
job.add(StorageSite.TRANSFER_PROTOCOLS, "rsync");
@@ -37,7 +37,7 @@ void testMissingHostname() {
@Test
void testBadProtocol() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add(StorageSite.HOSTNAME, "myHostname");
job.add(StorageSite.NAME, "myName");
job.add(StorageSite.PRIMARY_STORAGE, true);
@@ -48,7 +48,7 @@ void testBadProtocol() {
@Test
void testNonBoolean() {
- JsonObjectBuilder job = Json.createObjectBuilder();
+ JsonObjectBuilder job = JsonUtil.createObjectBuilder();
job.add(StorageSite.HOSTNAME, "myHostname");
job.add(StorageSite.NAME, "myName");
job.add(StorageSite.PRIMARY_STORAGE, "not a boolean");
diff --git a/src/test/java/edu/harvard/iq/dataverse/metrics/MetricsUtilTest.java b/src/test/java/edu/harvard/iq/dataverse/metrics/MetricsUtilTest.java
index ca662409a98..afd58e8c1a5 100644
--- a/src/test/java/edu/harvard/iq/dataverse/metrics/MetricsUtilTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/metrics/MetricsUtilTest.java
@@ -193,7 +193,7 @@ void testStringToJsonArrayBuilder() {
void testStringToJsonObjectBuilder() {
System.out.println("testStringToJsonObjectBuilder");
- JsonObject jsonObjBefore = Json.createObjectBuilder().add("Test", "result").build();
+ JsonObject jsonObjBefore = JsonUtil.createObjectBuilder().add("Test", "result").build();
System.out.println(JsonUtil.prettyPrint(jsonObjBefore));
JsonObject jsonObjAfter = MetricsUtil.stringToJsonObject(jsonObjBefore.toString());
diff --git a/src/test/java/edu/harvard/iq/dataverse/pidproviders/PidUtilTest.java b/src/test/java/edu/harvard/iq/dataverse/pidproviders/PidUtilTest.java
index 201d3c6c25d..d73ca414b7a 100644
--- a/src/test/java/edu/harvard/iq/dataverse/pidproviders/PidUtilTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/pidproviders/PidUtilTest.java
@@ -414,7 +414,7 @@ public void testFindingPidGenerators() throws IOException {
Dataset dataset1 = new Dataset();
Dataverse dataverse1 = new Dataverse();
dataset1.setOwner(dataverse1);
- String pidGeneratorSpecs = Json.createObjectBuilder().add("protocol", AbstractDOIProvider.DOI_PROTOCOL).add("authority","10.5072").add("shoulder", "FK2").build().toString();
+ String pidGeneratorSpecs = JsonUtil.createObjectBuilder().add("protocol", AbstractDOIProvider.DOI_PROTOCOL).add("authority","10.5072").add("shoulder", "FK2").build().toString();
//Set a PID generator on the parent
dataverse1.setPidGeneratorSpecs(pidGeneratorSpecs);
assertEquals(pidGeneratorSpecs, dataverse1.getPidGeneratorSpecs());
@@ -440,7 +440,7 @@ public void testFindingPidGenerators() throws IOException {
//Now test failure case
dataverse1.setPidGenerator(null);
dataset1.setPidGenerator(null);
- pidGeneratorSpecs = Json.createObjectBuilder().add("protocol", AbstractDOIProvider.DOI_PROTOCOL).add("authority","10.9999").add("shoulder", "FK2").build().toString();
+ pidGeneratorSpecs = JsonUtil.createObjectBuilder().add("protocol", AbstractDOIProvider.DOI_PROTOCOL).add("authority","10.9999").add("shoulder", "FK2").build().toString();
//Set a PID generator on the parent
dataverse1.setPidGeneratorSpecs(pidGeneratorSpecs);
assertEquals(pidGeneratorSpecs, dataverse1.getPidGeneratorSpecs());
diff --git a/src/test/java/edu/harvard/iq/dataverse/search/SolrSearchResultTest.java b/src/test/java/edu/harvard/iq/dataverse/search/SolrSearchResultTest.java
index d7deaa2dbc1..b3a0317f5ab 100644
--- a/src/test/java/edu/harvard/iq/dataverse/search/SolrSearchResultTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/search/SolrSearchResultTest.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.search;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import jakarta.json.Json;
import jakarta.json.JsonObject;
import jakarta.json.JsonObjectBuilder;
@@ -239,9 +240,9 @@ public void testSetPublicationStatusesJson() {
JsonObject actual = actual01.build();
System.out.println("actual: " + actual);
- JsonObjectBuilder expResult = Json.createObjectBuilder();
+ JsonObjectBuilder expResult = JsonUtil.createObjectBuilder();
expResult.add("type", SearchConstants.DATAVERSE);
- expResult.add("publicationStatuses", Json.createArrayBuilder().add("Unpublished").add("Draft").build());
+ expResult.add("publicationStatuses", JsonUtil.createArrayBuilder().add("Unpublished").add("Draft").build());
JsonObject expected = expResult.build();
System.out.println("expect: " + expected);
@@ -261,7 +262,7 @@ public void testJson() {
JsonObject actual = actual01.build();
System.out.println("actual: " + actual);
- JsonObjectBuilder expResult = Json.createObjectBuilder();
+ JsonObjectBuilder expResult = JsonUtil.createObjectBuilder();
expResult.add("type", SearchConstants.DATAVERSE);
JsonObject expected = expResult.build();
System.out.println("expect: " + expected);
diff --git a/src/test/java/edu/harvard/iq/dataverse/settings/SettingsServiceBeanTest.java b/src/test/java/edu/harvard/iq/dataverse/settings/SettingsServiceBeanTest.java
index c4881257374..749a599a43b 100644
--- a/src/test/java/edu/harvard/iq/dataverse/settings/SettingsServiceBeanTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/settings/SettingsServiceBeanTest.java
@@ -1,5 +1,6 @@
package edu.harvard.iq.dataverse.settings;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import jakarta.json.Json;
import jakarta.json.JsonArray;
import jakarta.json.JsonObject;
@@ -118,21 +119,21 @@ class ValidateKeysTest {
static List validateKeysTestParameters() {
return List.of(
Arguments.of(
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add(":ApplicationTermsOfUse", "validValue1")
.add(":ApplicationTermsOfUse/lang/en", "validValue2")
.build(),
List.of()
),
Arguments.of(
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add(":Invalid:Key", "value1")
.add(":NonExistentKey/lang/fr", "value2")
.build(),
List.of(":Invalid:Key", ":NonExistentKey/lang/fr")
),
Arguments.of(
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add(":ApplicationTermsOfUse", "value3")
.add("NoColonKey", "value4")
.build(),
@@ -200,7 +201,7 @@ void testListAllAsJson_nonLocalizedSettings() {
@Test
void testListAllAsJson_jsonObjectSetting() {
// Given
- JsonObject expected = Json.createObjectBuilder()
+ JsonObject expected = JsonUtil.createObjectBuilder()
.add("default", "2147483648")
.add("fileOne", "4000000000")
.add("s3", "8000000000")
@@ -222,7 +223,7 @@ void testListAllAsJson_jsonObjectSetting() {
@Test
void testListAllAsJson_jsonArraySetting() {
// Given
- JsonArray expected = Json.createArrayBuilder()
+ JsonArray expected = JsonUtil.createArrayBuilder()
.add(2147483648L)
.add("4000000000")
.add("8000000000")
@@ -268,7 +269,7 @@ class ConvertJsonToSettingsTest {
@Test
void testConvertJsonToSettings_simpleKeyValues() {
// Given
- JsonObject input = Json.createObjectBuilder()
+ JsonObject input = JsonUtil.createObjectBuilder()
.add(":Key1", "Value1")
.add(":Key2", "123456")
// The REST API endpoint presents a JsonObject, which may have number literals in it.
@@ -296,7 +297,7 @@ void testConvertJsonToSettings_simpleKeyValues() {
@Test
void testConvertJsonToSettings_localizedKeysWithSimpleValues() {
// Given
- JsonObject input = Json.createObjectBuilder()
+ JsonObject input = JsonUtil.createObjectBuilder()
.add(":LocalizedKey/lang/en", "EnglishValue")
.add(":LocalizedKey/lang/fr", "FrenchValue")
.build();
@@ -315,7 +316,7 @@ void testConvertJsonToSettings_localizedKeysWithSimpleValues() {
@Test
void testConvertJsonToSettings_emptyJson() {
// Given
- JsonObject input = Json.createObjectBuilder().build();
+ JsonObject input = JsonUtil.createObjectBuilder().build();
// When
Set result = SettingsServiceBean.convertJsonToSettings(input);
@@ -327,10 +328,10 @@ void testConvertJsonToSettings_emptyJson() {
@Test
void testConvertJsonToSettings_complexJsonValue() {
// Given
- JsonObject input = Json.createObjectBuilder()
+ JsonObject input = JsonUtil.createObjectBuilder()
.add(
":MaxFileUploadSizeInBytes",
- Json.createObjectBuilder()
+ JsonUtil.createObjectBuilder()
.add("default", "2147483648")
.add("fileOne", "4000000000")
.add("s3", "8000000000")
diff --git a/src/test/java/edu/harvard/iq/dataverse/util/FileUtilTest.java b/src/test/java/edu/harvard/iq/dataverse/util/FileUtilTest.java
index af3ef6694fd..c55d0ddad8b 100644
--- a/src/test/java/edu/harvard/iq/dataverse/util/FileUtilTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/util/FileUtilTest.java
@@ -95,24 +95,6 @@ public void testIsDownloadPopupRequiredLicenseCC0() {
assertFalse(FileUtil.isDownloadPopupRequired(dsv1));
}
- @Test
- public void testIsDownloadPopupRequiredHasTermsOfUseAndCc0License() {
- DatasetVersion dsv1 = new DatasetVersion();
- dsv1.setVersionState(DatasetVersion.VersionState.RELEASED);
- TermsOfUseAndAccess termsOfUseAndAccess = new TermsOfUseAndAccess();
- /**
- * @todo Ask if setting the license to CC0 should be enough to not show
- * the popup when the are Terms of Use. This feels like a bug since the
- * Terms of Use should probably be shown.
- */
- License license = new License("CC0", "You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.", URI.create("http://creativecommons.org/publicdomain/zero/1.0"), URI.create("/resources/images/cc0.png"), true, 2l);
- license.setDefault(true);
- termsOfUseAndAccess.setLicense(license);
- termsOfUseAndAccess.setTermsOfUse("be excellent to each other");
- dsv1.setTermsOfUseAndAccess(termsOfUseAndAccess);
- assertFalse(FileUtil.isDownloadPopupRequired(dsv1));
- }
-
@Test
public void testIsDownloadPopupRequiredHasTermsOfUseAndNoneLicense() {
DatasetVersion dsv1 = new DatasetVersion();
diff --git a/src/test/java/edu/harvard/iq/dataverse/util/bagit/BagGeneratorInfoFileTest.java b/src/test/java/edu/harvard/iq/dataverse/util/bagit/BagGeneratorInfoFileTest.java
index 05e83b8540d..3fb7f0f247e 100644
--- a/src/test/java/edu/harvard/iq/dataverse/util/bagit/BagGeneratorInfoFileTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/util/bagit/BagGeneratorInfoFileTest.java
@@ -3,6 +3,7 @@
import edu.harvard.iq.dataverse.engine.command.impl.AbstractSubmitToArchiveCommand;
import edu.harvard.iq.dataverse.util.json.JsonLDTerm;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
@@ -34,7 +35,7 @@ public void setUp() throws Exception {
MockitoAnnotations.openMocks(this);
// Create base test aggregation builder with required fields
- testAggregationBuilder = Json.createObjectBuilder();
+ testAggregationBuilder = JsonUtil.createObjectBuilder();
testAggregationBuilder.add("@id", "doi:10.5072/FK2/TEST123");
testAggregationBuilder.add(JsonLDTerm.schemaOrg("name").getLabel(), "Test Dataset");
testAggregationBuilder.add(JsonLDTerm.schemaOrg("includedInDataCatalog").getLabel(), "Test Catalog");
@@ -46,7 +47,7 @@ public void setUp() throws Exception {
private void initializeBagGenerator() throws Exception {
JsonObject testAggregation = testAggregationBuilder.build();
- JsonObjectBuilder oremapJsonBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder oremapJsonBuilder = JsonUtil.createObjectBuilder();
oremapJsonBuilder.add(JsonLDTerm.ore("describes").getLabel(), testAggregation);
JsonObject oremapObject = oremapJsonBuilder.build();
// Mock the OREMap.getOREMap() method to return the built JSON
@@ -71,7 +72,7 @@ public void testGenerateInfoFileWithSingleContact() throws Exception {
when(mockOreMap.getContactNameTerm()).thenReturn(contactNameTerm);
when(mockOreMap.getContactEmailTerm()).thenReturn(contactEmailTerm);
- JsonObjectBuilder contactBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder contactBuilder = JsonUtil.createObjectBuilder();
contactBuilder.add(contactNameTerm.getLabel(), "John Doe");
contactBuilder.add(contactEmailTerm.getLabel(), "john.doe@example.com");
testAggregationBuilder.add(contactTerm.getLabel(), contactBuilder);
@@ -98,17 +99,17 @@ public void testGenerateInfoFileWithMultipleContacts() throws Exception {
when(mockOreMap.getContactNameTerm()).thenReturn(contactNameTerm);
when(mockOreMap.getContactEmailTerm()).thenReturn(contactEmailTerm);
- JsonArrayBuilder contactsBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder contactsBuilder = JsonUtil.createArrayBuilder();
- JsonObjectBuilder contact1 = Json.createObjectBuilder();
+ JsonObjectBuilder contact1 = JsonUtil.createObjectBuilder();
contact1.add(contactNameTerm.getLabel(), "John Doe");
contact1.add(contactEmailTerm.getLabel(), "john.doe@example.com");
- JsonObjectBuilder contact2 = Json.createObjectBuilder();
+ JsonObjectBuilder contact2 = JsonUtil.createObjectBuilder();
contact2.add(contactNameTerm.getLabel(), "Jane Smith");
contact2.add(contactEmailTerm.getLabel(), "jane.smith@example.com");
- JsonObjectBuilder contact3 = Json.createObjectBuilder();
+ JsonObjectBuilder contact3 = JsonUtil.createObjectBuilder();
contact3.add(contactNameTerm.getLabel(), "Bob Johnson");
contact3.add(contactEmailTerm.getLabel(), "bob.johnson@example.com");
@@ -142,7 +143,7 @@ public void testGenerateInfoFileWithSingleDescription() throws Exception {
when(mockOreMap.getDescriptionTerm()).thenReturn(descriptionTerm);
when(mockOreMap.getDescriptionTextTerm()).thenReturn(descriptionTextTerm);
- JsonObjectBuilder descriptionBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder descriptionBuilder = JsonUtil.createObjectBuilder();
descriptionBuilder.add(descriptionTextTerm.getLabel(), "This is a test dataset description.");
testAggregationBuilder.add(descriptionTerm.getLabel(), descriptionBuilder);
@@ -165,15 +166,15 @@ public void testGenerateInfoFileWithMultipleDescriptions() throws Exception {
when(mockOreMap.getDescriptionTerm()).thenReturn(descriptionTerm);
when(mockOreMap.getDescriptionTextTerm()).thenReturn(descriptionTextTerm);
- JsonArrayBuilder descriptionsBuilder = Json.createArrayBuilder();
+ JsonArrayBuilder descriptionsBuilder = JsonUtil.createArrayBuilder();
- JsonObjectBuilder desc1 = Json.createObjectBuilder();
+ JsonObjectBuilder desc1 = JsonUtil.createObjectBuilder();
desc1.add(descriptionTextTerm.getLabel(), "First description of the dataset.");
- JsonObjectBuilder desc2 = Json.createObjectBuilder();
+ JsonObjectBuilder desc2 = JsonUtil.createObjectBuilder();
desc2.add(descriptionTextTerm.getLabel(), "Second description with additional details.");
- JsonObjectBuilder desc3 = Json.createObjectBuilder();
+ JsonObjectBuilder desc3 = JsonUtil.createObjectBuilder();
desc3.add(descriptionTextTerm.getLabel(), "Third description for completeness.");
descriptionsBuilder.add(desc1);
@@ -206,11 +207,11 @@ public void testGenerateInfoFileWithRequiredFields() throws Exception {
when(mockOreMap.getDescriptionTerm()).thenReturn(descriptionTerm);
when(mockOreMap.getDescriptionTextTerm()).thenReturn(descriptionTextTerm);
- JsonObjectBuilder contactBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder contactBuilder = JsonUtil.createObjectBuilder();
contactBuilder.add(contactNameTerm.getLabel(), "Test Contact");
testAggregationBuilder.add(contactTerm.getLabel(), contactBuilder);
- JsonObjectBuilder descriptionBuilder = Json.createObjectBuilder();
+ JsonObjectBuilder descriptionBuilder = JsonUtil.createObjectBuilder();
descriptionBuilder.add(descriptionTextTerm.getLabel(), "Test description");
testAggregationBuilder.add(descriptionTerm.getLabel(), descriptionBuilder);
diff --git a/src/test/java/edu/harvard/iq/dataverse/util/json/JsonParserTest.java b/src/test/java/edu/harvard/iq/dataverse/util/json/JsonParserTest.java
index 262aa38d5d0..aed5301f05a 100644
--- a/src/test/java/edu/harvard/iq/dataverse/util/json/JsonParserTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/util/json/JsonParserTest.java
@@ -19,6 +19,7 @@
import edu.harvard.iq.dataverse.dataset.DatasetType;
import edu.harvard.iq.dataverse.dataset.DatasetTypeServiceBean;
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
+import edu.harvard.iq.dataverse.license.License;
import edu.harvard.iq.dataverse.license.LicenseServiceBean;
import edu.harvard.iq.dataverse.mocks.MockDatasetFieldSvc;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
@@ -671,19 +672,19 @@ void testMailDomainGroupNotEnabledRegexDomains() {
@Test
public void testparseFiles() throws JsonParseException {
- JsonArrayBuilder metadatasJsonBuilder = Json.createArrayBuilder();
- JsonObjectBuilder fileMetadataGood = Json.createObjectBuilder();
+ JsonArrayBuilder metadatasJsonBuilder = JsonUtil.createArrayBuilder();
+ JsonObjectBuilder fileMetadataGood = JsonUtil.createObjectBuilder();
fileMetadataGood.add("label", "myLabel");
- JsonObjectBuilder fileGood = Json.createObjectBuilder();
+ JsonObjectBuilder fileGood = JsonUtil.createObjectBuilder();
fileMetadataGood.add("dataFile", fileGood);
- fileMetadataGood.add("categories", Json.createArrayBuilder()
+ fileMetadataGood.add("categories", JsonUtil.createArrayBuilder()
.add("Documentation")
);
- JsonObjectBuilder fileMetadataBad = Json.createObjectBuilder();
+ JsonObjectBuilder fileMetadataBad = JsonUtil.createObjectBuilder();
fileMetadataBad.add("label", "bad");
- JsonObjectBuilder fileBad = Json.createObjectBuilder();
+ JsonObjectBuilder fileBad = JsonUtil.createObjectBuilder();
fileMetadataBad.add("dataFile", fileBad);
- fileMetadataBad.add("categories", Json.createArrayBuilder()
+ fileMetadataBad.add("categories", JsonUtil.createArrayBuilder()
.add(BigDecimal.ONE)
);
metadatasJsonBuilder.add(fileMetadataGood);
@@ -697,7 +698,7 @@ public void testparseFiles() throws JsonParseException {
assertEquals("myLabel", fileMetadatas.get(0).getLabel());
assertEquals("Documentation", fileMetadatas.get(0).getCategories().get(0).getName());
assertEquals(null, fileMetadatas.get(1).getCategories());
- List codeCoverage = new JsonParser().parseFiles(Json.createArrayBuilder().add(Json.createObjectBuilder().add("label", "myLabel").add("dataFile", Json.createObjectBuilder().add("categories", JsonValue.NULL))).build(), dsv);
+ List codeCoverage = new JsonParser().parseFiles(JsonUtil.createArrayBuilder().add(JsonUtil.createObjectBuilder().add("label", "myLabel").add("dataFile", JsonUtil.createObjectBuilder().add("categories", JsonValue.NULL))).build(), dsv);
assertEquals(null, codeCoverage.get(0).getCategories());
}
@@ -758,7 +759,42 @@ public boolean assertFieldsEqual( DatasetField ex, DatasetField act ) {
throw new IllegalArgumentException("Unknown dataset field type '" + ex.getDatasetFieldType() + "'");
}
+ @Test
+ public void testParseDatasetVersion_LicenseAndTerms() throws JsonParseException {
+ // Prepare mocks
+ License defaultLicense = new License();
+ defaultLicense.setName("CC0 1.0");
+ Mockito.when(licenseService.getDefault()).thenReturn(defaultLicense);
+
+ String baseJson = "{\"metadataBlocks\":{\"citation\":{\"fields\":[]}}}";
+
+ // Case 1: Flag false (default), terms NOT provided -> should pick default
+ System.setProperty("dataverse.feature.do-not-assume-default-license", "false");
+ DatasetVersion dsv1 = sut.parseDatasetVersion(JsonUtil.getJsonObject(baseJson));
+ assertEquals(defaultLicense, dsv1.getTermsOfUseAndAccess().getLicense());
+
+ // Case 2: Flag false (default), terms PROVIDED -> should NOT pick default
+ String jsonWithTerms = "{\"metadataBlocks\":{\"citation\":{\"fields\":[]}}, \"termsOfUse\":\"Some terms\"}";
+ DatasetVersion dsv2 = sut.parseDatasetVersion(JsonUtil.getJsonObject(jsonWithTerms));
+ assertNull(dsv2.getTermsOfUseAndAccess().getLicense());
+ assertEquals("Some terms", dsv2.getTermsOfUseAndAccess().getTermsOfUse());
+
+ // Case 3: Flag true, terms NOT provided -> should NOT pick default
+ System.setProperty("dataverse.feature.do-not-assume-default-license", "true");
+ DatasetVersion dsv3 = sut.parseDatasetVersion(JsonUtil.getJsonObject(baseJson));
+ assertNull(dsv3.getTermsOfUseAndAccess().getLicense());
+
+ // Cleanup
+ System.clearProperty("dataverse.feature.do-not-assume-default-license");
+ }
+
private static class MockSettingsSvc extends SettingsServiceBean {
+ private boolean allowCustomTermsOfUse = false;
+
+ public void setAllowCustomTermsOfUse(boolean allow) {
+ this.allowCustomTermsOfUse = allow;
+ }
+
@Override
public String getValueForKey( Key key /*, String defaultValue */) {
switch (key) {
@@ -775,7 +811,7 @@ public String getValueForKey( Key key /*, String defaultValue */) {
@Override
public boolean isTrueForKey(Key key, boolean safeDefaultIfKeyNotFound) {
if (key == Key.AllowCustomTermsOfUse) {
- return false;
+ return this.allowCustomTermsOfUse;
}
return safeDefaultIfKeyNotFound;
}
@@ -783,7 +819,7 @@ public boolean isTrueForKey(Key key, boolean safeDefaultIfKeyNotFound) {
@Test
public void testEnum() throws JsonParseException {
- JsonArrayBuilder arr = Json.createArrayBuilder();
+ JsonArrayBuilder arr = JsonUtil.createArrayBuilder();
for (Type entry : Arrays.asList(Type.REVOKEROLE, Type.ASSIGNROLE)) {
arr.add(entry.name());
}
diff --git a/src/test/java/edu/harvard/iq/dataverse/util/testing/fixtures/DatasetFixtureTest.java b/src/test/java/edu/harvard/iq/dataverse/util/testing/fixtures/DatasetFixtureTest.java
index 254295d8c3b..0c797c5ce93 100644
--- a/src/test/java/edu/harvard/iq/dataverse/util/testing/fixtures/DatasetFixtureTest.java
+++ b/src/test/java/edu/harvard/iq/dataverse/util/testing/fixtures/DatasetFixtureTest.java
@@ -5,6 +5,7 @@
import edu.harvard.iq.dataverse.branding.BrandingUtilTest;
import edu.harvard.iq.dataverse.settings.JvmSettings;
import edu.harvard.iq.dataverse.util.json.JsonPrinter;
+import edu.harvard.iq.dataverse.util.json.JsonUtil;
import edu.harvard.iq.dataverse.util.testing.recipes.DatasetRecipe;
import edu.harvard.iq.dataverse.util.testing.recipes.DatasetTypeRecipe;
import edu.harvard.iq.dataverse.util.testing.recipes.FileRecipe;
@@ -60,7 +61,7 @@ void smoketest() {
start = Instant.now();
- JsonArrayBuilder jab = Json.createArrayBuilder();
+ JsonArrayBuilder jab = JsonUtil.createArrayBuilder();
for (FileMetadata fileMetadata : fixture.fileMetadatas()) {
DataFile dataFile = fileMetadata.getDataFile();
jab.add(JsonPrinter.json(dataFile, fileMetadata, true));
|