Skip to content

Commit d68273a

Browse files
committed
Refs #2507: Minor adjustments
1 parent 990fd79 commit d68273a

File tree

8 files changed

+36
-31
lines changed

8 files changed

+36
-31
lines changed

dataverse-persistence/src/main/java/edu/harvard/iq/dataverse/persistence/harvest/HarvestingClient.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import edu.harvard.iq.dataverse.persistence.JpaEntity;
44
import edu.harvard.iq.dataverse.persistence.dataset.Dataset;
55
import edu.harvard.iq.dataverse.persistence.dataverse.Dataverse;
6+
import io.vavr.control.Option;
67
import org.hibernate.validator.constraints.NotBlank;
78

89
import javax.persistence.CascadeType;
@@ -132,7 +133,7 @@ public String getHarvestingUrl() {
132133
}
133134

134135
public void setHarvestingUrl(String harvestingUrl) {
135-
this.harvestingUrl = harvestingUrl.trim();
136+
this.harvestingUrl = Option.of(harvestingUrl).map(String::trim).getOrNull();
136137
}
137138

138139
private String archiveUrl;

dataverse-webapp/src/main/java/edu/harvard/iq/dataverse/api/AbstractApiBean.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -632,11 +632,7 @@ protected <T> Response accepted(T objectToBeSerialized) {
632632
}
633633

634634
protected Response accepted() {
635-
return Response.accepted()
636-
.entity(Json.createObjectBuilder()
637-
.add("status", STATUS_WF_IN_PROGRESS)
638-
.build())
639-
.build();
635+
return Response.accepted().build();
640636
}
641637

642638
protected Response notFound(String msg) {

dataverse-webapp/src/main/java/edu/harvard/iq/dataverse/citation/CitationDataExtractor.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,8 @@ private boolean shouldCreateGlobalId(DatasetVersion dsv) {
217217
return !dsv.getDataset().isHarvested()
218218
|| HarvestStyle.VDC.equals(harvestStyle)
219219
|| HarvestStyle.ICPSR.equals(harvestStyle)
220-
|| HarvestStyle.DATAVERSE.equals(harvestStyle);
220+
|| HarvestStyle.DATAVERSE.equals(harvestStyle)
221+
|| HarvestStyle.DOI.equals(harvestStyle);
221222
}
222223

223224
private Date extractCitationDate(DatasetVersion dsv) {

dataverse-webapp/src/main/java/edu/harvard/iq/dataverse/harvest/client/DataciteDOIHarvester.java

+2
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
import edu.harvard.iq.dataverse.persistence.harvest.HarvestType;
99
import edu.harvard.iq.dataverse.persistence.harvest.HarvestingClient;
1010

11+
import javax.ejb.LocalBean;
1112
import javax.ejb.Stateless;
1213
import javax.inject.Inject;
1314
import java.util.logging.Level;
1415
import java.util.logging.Logger;
1516

1617
@Stateless
18+
@LocalBean
1719
public class DataciteDOIHarvester implements Harvester<DataciteHarvesterParams> {
1820

1921

dataverse-webapp/src/main/java/edu/harvard/iq/dataverse/harvest/client/DataciteDatasetMapper.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
import edu.harvard.iq.dataverse.common.DatasetFieldConstant;
1010
import edu.harvard.iq.dataverse.globalid.DataCiteFindDoiResponse;
1111
import edu.harvard.iq.dataverse.persistence.GlobalId;
12+
import edu.harvard.iq.dataverse.persistence.dataset.DatasetVersion;
1213
import io.vavr.control.Option;
1314
import org.apache.commons.lang.StringUtils;
1415

1516
import javax.ejb.Stateless;
1617
import java.util.ArrayList;
1718
import java.util.Collections;
19+
import java.util.HashMap;
1820
import java.util.HashSet;
1921
import java.util.List;
2022
import java.util.Set;
@@ -44,7 +46,11 @@ public DatasetDTO toDataset(DataCiteFindDoiResponse response) {
4446

4547
MetadataBlockWithFieldsDTO citationBlock = new MetadataBlockWithFieldsDTO();
4648
citationBlock.setFields(new ArrayList<>());
47-
datasetVersion.getMetadataBlocks().put("citation", citationBlock);
49+
HashMap<String, MetadataBlockWithFieldsDTO> metadataBlocks = new HashMap<>();
50+
datasetVersion.setMetadataBlocks(metadataBlocks);
51+
datasetVersion.setVersionState(DatasetVersion.VersionState.RELEASED.name());
52+
53+
metadataBlocks.put("citation", citationBlock);
4854

4955
addPrimitiveToBlock(citationBlock, DatasetFieldConstant.title, extractFirstTitle(getTitlesWithoutType(attributes)));
5056
addPrimitiveToBlock(citationBlock, DatasetFieldConstant.alternativeTitle, extractFirstTitle(getTitlesByType(attributes, DataCiteFindDoiResponse.TitleType.AlternativeTitle)));
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package edu.harvard.iq.dataverse.harvest.client;
22

3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import io.vavr.control.Option;
5+
6+
import java.util.Collections;
37
import java.util.List;
4-
import java.util.stream.Collectors;
58

69
/**
710
* Parameters used by the datacite DOI harvester.
@@ -10,24 +13,18 @@ public class DataciteHarvesterParams extends HarvesterParams {
1013

1114
private final static String DOI_PART_SEPARATOR = "/";
1215

13-
private final List<DOIValue> doiImport;
14-
15-
// -------------------- CONSTRUCTORS --------------------
16-
17-
public DataciteHarvesterParams(List<DOIValue> doi) {
18-
this.doiImport = doi;
19-
}
16+
private List<DOIValue> doiImport;
2017

2118
// -------------------- GETTERS --------------------
2219

2320
public List<DOIValue> getDoiImport() {
24-
return doiImport;
21+
return Option.of(doiImport).getOrElse(Collections.emptyList());
2522
}
2623

27-
// -------------------- LOGIC --------------------
24+
// -------------------- SETTERS --------------------
2825

29-
public static DataciteHarvesterParams fromFullDOIList(List<String> fullDOI) {
30-
return new DataciteHarvesterParams(fullDOI.stream().map(DOIValue::parseFullDOI).collect(Collectors.toList()));
26+
public void setDoiImport(List<DOIValue> doiImport) {
27+
this.doiImport = doiImport;
3128
}
3229

3330
// -------------------- INNER CLASSES --------------------
@@ -43,6 +40,15 @@ public DOIValue(String authority, String id) {
4340
this.id = id;
4441
}
4542

43+
public DOIValue(String fullDoi) {
44+
String[] doiParts = fullDoi.split(DOI_PART_SEPARATOR);
45+
if (doiParts.length != 2) {
46+
throw new IllegalArgumentException("Invalid DOI: " + fullDoi);
47+
}
48+
this.authority = doiParts[0];
49+
this.id = doiParts[1];
50+
}
51+
4652
// -------------------- GETTERS --------------------
4753

4854
public String getAuthority() {
@@ -56,16 +62,5 @@ public String getId() {
5662
public String getFull() {
5763
return authority + DOI_PART_SEPARATOR + id;
5864
}
59-
60-
// -------------------- LOGIC --------------------
61-
62-
public static DOIValue parseFullDOI(String fullDOI) {
63-
String[] doiParts = fullDOI.split(DOI_PART_SEPARATOR);
64-
if (doiParts.length != 2) {
65-
throw new IllegalArgumentException("Invalid DOI: " + fullDOI);
66-
}
67-
return new DOIValue(doiParts[0], doiParts[1]);
68-
}
69-
7065
}
7166
}

dataverse-webapp/src/main/java/edu/harvard/iq/dataverse/harvest/client/OAIHarvester.java

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.dspace.xoai.serviceprovider.exceptions.IdDoesNotExistException;
2525

2626
import javax.ejb.EJB;
27+
import javax.ejb.LocalBean;
2728
import javax.ejb.Stateless;
2829
import javax.ejb.TransactionAttribute;
2930
import javax.ejb.TransactionAttributeType;
@@ -39,6 +40,7 @@
3940
* Harvester for OAI clients.
4041
*/
4142
@Stateless
43+
@LocalBean
4244
public class OAIHarvester implements Harvester<HarvesterParams.EmptyHarvesterParams> {
4345

4446
@PersistenceContext(unitName = "VDCNet-ejbPU")

dataverse-webapp/src/main/java/edu/harvard/iq/dataverse/util/json/JsonParser.java

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import edu.harvard.iq.dataverse.persistence.group.IpAddress;
1919
import edu.harvard.iq.dataverse.persistence.group.IpAddressRange;
2020
import edu.harvard.iq.dataverse.persistence.group.IpGroup;
21+
import edu.harvard.iq.dataverse.persistence.harvest.HarvestStyle;
2122
import edu.harvard.iq.dataverse.persistence.harvest.HarvestType;
2223
import edu.harvard.iq.dataverse.persistence.harvest.HarvestingClient;
2324
import edu.harvard.iq.dataverse.persistence.workflow.Workflow;
@@ -701,6 +702,7 @@ public String parseHarvestingClient(JsonObject obj, HarvestingClient harvestingC
701702

702703
harvestingClient.setName(obj.getString("nickName", null));
703704
harvestingClient.setHarvestType(Option.of(obj.getString("type", null)).map(HarvestType::valueOf).getOrNull());
705+
harvestingClient.setHarvestStyle(Option.of(obj.getString("style", null)).map(HarvestStyle::valueOf).getOrNull());
704706
harvestingClient.setHarvestingUrl(obj.getString("harvestUrl", null));
705707
harvestingClient.setArchiveUrl(obj.getString("archiveUrl", null));
706708
harvestingClient.setMetadataPrefix(obj.getString("metadataFormat", null));

0 commit comments

Comments
 (0)