Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import com.researchspace.dataverse.entities.*;
import com.researchspace.dataverse.entities.facade.DatasetFacade;
import com.researchspace.dataverse.entities.facade.License;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.RandomStringUtils;
import org.junit.Before;
Expand All @@ -15,6 +17,7 @@
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.List;
Expand Down Expand Up @@ -161,6 +164,15 @@ public void testUploadFile() {
datasetOps.uploadFile(ds.getDoiId().get(), getTestFile(), ds.getProtocol());
}

@Test
public void testCreateDatasetWithLicense() throws URISyntaxException {
DatasetFacade facade = createFacadeWithMetadataLanguage();
facade.setLicense(new License("CC0 1.0", new URI("http://creativecommons.org/publicdomain/zero/1.0")));
Identifier datasetId = dataverseOps.createDataset(facade, dataverseAlias);
Dataset ds = datasetOps.getDataset(datasetId);
assertEquals("CC0 1.0", ds.getLatestVersion().getLicense().getName());
}

private File getTestFile() {
return new File("src/integration-test/resources/ResizablePng.zip");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import org.junit.Test;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

import static org.junit.Assert.*;
/** <pre>
Expand Down Expand Up @@ -93,4 +95,12 @@ public void testGetDataverseById() {
assertNotNull(dv.getId());
assertTrue(dv.getContactEmails().size() > 0);
}

@Test
public void testGetDatasetMetadataLanguage() {
// only works if dataverseAlias belongs to a dataverse collection with enlish as its metadatalanguage
DataverseResponse<List<Map<String, String>>> langMap = dataverseOps
.getDataverseMetadataLanguage(dataverseAlias);
assertEquals("en", langMap.getData().get(0).get("locale"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
<pre>
Expand All @@ -32,6 +33,7 @@
@EqualsAndHashCode(of={"serverURL"})
@AllArgsConstructor
@ToString()
@NoArgsConstructor
public class DataverseConfig {

private @Getter URL serverURL;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import java.io.IOException;
import java.util.List;
import java.util.Map;

import com.researchspace.dataverse.entities.DataversePost;
import com.researchspace.dataverse.entities.DataverseGet;
Expand Down Expand Up @@ -87,4 +88,6 @@ public interface DataverseOperations {
*/
DataverseResponse<DataversePost> publishDataverse(String dataverseAlias);

DataverseResponse<List<Map<String, String>>> getDataverseMetadataLanguage(String alias);

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import java.util.Date;

import com.researchspace.dataverse.entities.facade.License;

import lombok.Data;
/** <pre>
Copyright 2016 ResearchSpace
Expand All @@ -31,5 +33,5 @@ public class DatasetVersion {
private Date createTime;
private DataSetMetadataBlock metadataBlocks;
private int versionNumber, versionMinorNumber;

private License license;
}
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ public Dataset build(DatasetFacade facade) {
dv.setMetadataBlocks(blocks);
blocks.setCitation(citation);
citation.setFields(fields);
License license = facade.getLicense();
if (license != null) {
dv.setLicense(license);
}
Dataset toSubmit = new Dataset();
toSubmit.setDatasetVersion(dv);
String metadataLanguage = facade.getMetadataLanguage();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ public class DatasetFacade {
private String productionPlace;
private @Singular List<DatasetContributor> contributors;
private String metadataLanguage;

private License license;

/**
* Returns a copy if the internally stored Date
* @return
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.researchspace.dataverse.entities.facade;

import java.net.URI;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class License {
private @NonNull String name;
private @NonNull URI uri;
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;

import static org.apache.commons.lang3.StringUtils.isEmpty;
import static org.apache.commons.lang3.Validate.isTrue;
Expand Down Expand Up @@ -412,5 +413,18 @@ public DataverseResponse<Object> setDatasetPublishPopupCustomText(String text) {
ResponseEntity<DataverseResponse<Object>> resp = template.exchange(url, HttpMethod.PUT, entity, type);
log.debug(resp.getBody().toString());
return resp.getBody();
}
}

@Override
public DataverseResponse<List<Map<String, String>>> getDataverseMetadataLanguage(String alias) {
String url = createV1Url("dataverses", alias, "allowedMetadataLanguages");
HttpEntity<String> entity = createHttpEntity("");
ParameterizedTypeReference<DataverseResponse<List<Map<String, String>>>> type = new ParameterizedTypeReference<DataverseResponse<List<Map<String, String>>>>() {
};
ResponseEntity<DataverseResponse<List<Map<String, String>>>> resp = template.exchange(url, HttpMethod.GET,
entity, type);
log.debug(resp.getBody().toString());
return resp.getBody();

}
}