Skip to content

Commit 2126975

Browse files
committed
v1 to v2 migration guide + other minor changes
1 parent c7f2556 commit 2126975

6 files changed

Lines changed: 47 additions & 40 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
Significant changes since 0.1.0
22

3-
2.0.0 2026-03-09
4-
- feature: remove SWORD protocol dependency and upload option
3+
2.0.0 2026-03-16
4+
- breaking change: removed SWORD dependency and sword-related upload methods from DatasetOperations interface; more details in [Migration Guide](Migration_Guide_V1_to_V2.md)
5+
- dependencies: minor version updates of `commons-lang3`, `commons-io` and `spring` versions
56

67
1.4.2 2026-02-25
78

Contributors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
## Contributors
22

33
Initial code contribution: Richard Adams (otter606).
4-
PRs and contributions: Aleix Mariné Tena (AleixMT)
4+
PRs and contributions: Aleix Mariné Tena (AleixMT), Kukucska Ákos (akos326)

Migration_Guide_V1_to_V2.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
Version 2.0.0. removes the SWORD protocol as an upload mechanism.
2+
3+
* SWORD library (`org.swordapp:sword2-client`) is no longer a dependency of the project.
4+
5+
* `com.researchspace.dataverse.api.v1.DatasetOperations` interface and `DataverseOperationsImplV1`
6+
implementation no longer provide `uploadFile()` methods. Use `uploadNativeFile()` methods instead.
7+
8+
* `com.researchspace.dataverse.sword.FileUploader` was removed.
9+
10+
For example usage of `uploadNativeFile()` method you can check implementation
11+
of [DataverseRSpaceRepository.java](https://github.com/rspace-os/rspace-dataverse-adapter/blob/main/src/main/java/com/researchspace/dataverse/rspaceadapter/DataverseRSpaceRepository.java)
12+
within [rspace-dataverse-adapter](https://github.com/rspace-os/rspace-dataverse-adapter) project.
13+
14+
If you need to use old SWORD upload you can still use version 1.4.2, which is available on JitPack
15+
or buildable via git history.
16+

Readme.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
This project is a Java wrapper around the [Dataverse API](http://guides.dataverse.org/en/4.2/api/).
44
It was initially contributed by [ResearchSpace](www.researchspace.com) in October 2016.
55

6-
## Version 2
7-
Version 2 removes the SWORD protocol as an upload mechanism.
8-
9-
If you make use of SWORD, you can still use version 1.X, which is available on JitPack or buildable via git history.
6+
Version 2.0.0 released in March 2026 no longer depends on SWORD protocol libs - see the [migration guide](Migration_Guide_V1_to_V2.md) for more details.
107

118
## Building
129

@@ -61,7 +58,7 @@ If using Maven, add this to your pom.xml file (thanks AleixMT).
6158
6259
<dependencies>
6360
<dependency>
64-
<groupId>com.github.rspace-os</groupId>
61+
<groupId>com.github.iqss</groupId>
6562
<artifactId>dataverse-client-java</artifactId>
6663
<version>v2.0.0</version>
6764
</dependency>
@@ -124,7 +121,7 @@ There are [instructions](https://projectlombok.org/features/index.html) on how t
124121

125122
### Coding standards
126123

127-
Please make sure tests pass before committing, and to add new tests for new additions.
124+
Please make sure tests pass before committing, and add new tests for new additions.
128125

129126
## Progress
130127

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ plugins {
44

55
apply plugin: 'java'
66

7-
group = 'com.github.rspace-os'
7+
group = 'com.github.iqss'
88
sourceCompatibility = 1.8
99
version = 'v2.0.0'
10-
def springVersion='5.3.24'
10+
def springVersion='5.3.39'
1111
def jacksonVersion='2.20.0'
1212
def jacksonAnnotationsVersion='2.20'
1313
def lombokVersion='1.18.24'
@@ -84,7 +84,7 @@ task listJars {
8484
publishing {
8585
publications {
8686
maven(MavenPublication) {
87-
groupId = 'com.github.rspace-os'
87+
groupId = 'com.github.iqss'
8888
artifactId = 'dataverse-client-java'
8989

9090
from components.java

src/main/java/com/researchspace/dataverse/http/DataverseOperationsImplV1.java

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,36 @@
33
*/
44
package com.researchspace.dataverse.http;
55

6+
import static org.apache.commons.lang3.StringUtils.isEmpty;
7+
import static org.apache.commons.lang3.Validate.isTrue;
8+
import static org.apache.commons.lang3.Validate.noNullElements;
9+
610
import com.fasterxml.jackson.core.JsonProcessingException;
711
import com.fasterxml.jackson.databind.ObjectMapper;
812
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
913
import com.researchspace.dataverse.api.v1.DatasetOperations;
1014
import com.researchspace.dataverse.api.v1.DataverseOperations;
1115
import com.researchspace.dataverse.api.v1.InfoOperations;
1216
import com.researchspace.dataverse.api.v1.MetadataOperations;
13-
import com.researchspace.dataverse.entities.*;
17+
import com.researchspace.dataverse.entities.Dataset;
18+
import com.researchspace.dataverse.entities.DatasetFileList;
19+
import com.researchspace.dataverse.entities.DatasetVersion;
20+
import com.researchspace.dataverse.entities.DataverseGet;
21+
import com.researchspace.dataverse.entities.DataverseObject;
22+
import com.researchspace.dataverse.entities.DataversePost;
23+
import com.researchspace.dataverse.entities.DataverseResponse;
24+
import com.researchspace.dataverse.entities.DvMessage;
25+
import com.researchspace.dataverse.entities.Identifier;
26+
import com.researchspace.dataverse.entities.MetadataBlock;
27+
import com.researchspace.dataverse.entities.PublishedDataset;
28+
import com.researchspace.dataverse.entities.Version;
1429
import com.researchspace.dataverse.entities.facade.DatasetBuilder;
1530
import com.researchspace.dataverse.entities.facade.DatasetFacade;
31+
import java.io.IOException;
32+
import java.io.InputStream;
33+
import java.util.List;
34+
import java.util.Map;
1635
import lombok.extern.slf4j.Slf4j;
17-
import org.apache.commons.lang3.StringUtils;
1836
import org.springframework.core.ParameterizedTypeReference;
1937
import org.springframework.core.io.AbstractResource;
2038
import org.springframework.core.io.ByteArrayResource;
@@ -24,17 +42,7 @@
2442
import org.springframework.http.HttpMethod;
2543
import org.springframework.http.ResponseEntity;
2644
import org.springframework.util.MultiValueMap;
27-
import org.springframework.web.client.RestClientException;
2845

29-
import java.io.*;
30-
import java.net.URI;
31-
import java.net.URISyntaxException;
32-
import java.util.List;
33-
import java.util.Map;
34-
35-
import static org.apache.commons.lang3.StringUtils.isEmpty;
36-
import static org.apache.commons.lang3.Validate.isTrue;
37-
import static org.apache.commons.lang3.Validate.noNullElements;
3846
/** Copyright 2016 ResearchSpace
3947
4048
Licensed under the Apache License, Version 2.0 (the "License");
@@ -53,9 +61,6 @@
5361
@Slf4j
5462
public class DataverseOperationsImplV1 extends AbstractOpsImplV1 implements DatasetOperations, MetadataOperations, InfoOperations, DataverseOperations {
5563

56-
57-
58-
5964
/* (non-Javadoc)
6065
* @see com.researchspace.dataverse.http.DataverseAPI#getDataverseById(java.lang.String)
6166
*/
@@ -87,7 +92,6 @@ public DataverseResponse<DvMessage> deleteDataverse(String dataverseAlias) {
8792
ResponseEntity<DataverseResponse<DvMessage>> resp = template.exchange(url, HttpMethod.DELETE, entity, type);
8893
log.debug(resp.getBody().toString());
8994
return resp.getBody();
90-
9195
}
9296

9397
@Override
@@ -98,7 +102,6 @@ public DataverseResponse<DataversePost> createNewDataverse(String parentDv, Data
98102
isTrue(!isEmpty(toCreate.getAlias()), "Alias must be specified");
99103
String url = createV1Url("dataverses", parentDv);
100104

101-
102105
String json = marshalDataset(toCreate);
103106
HttpEntity<String> entity = createHttpEntity(json);
104107
ParameterizedTypeReference<DataverseResponse<DataversePost>> type = new ParameterizedTypeReference<DataverseResponse<DataversePost>>() {
@@ -107,7 +110,6 @@ public DataverseResponse<DataversePost> createNewDataverse(String parentDv, Data
107110
log.debug(resp.getBody().toString());
108111
handleError(resp);
109112
return resp.getBody();
110-
111113
}
112114

113115
/* (non-Javadoc)
@@ -139,7 +141,6 @@ public Identifier createDataset(String dataSetJson, String dataverseAlias) {
139141
return resp.getBody().getData();
140142
}
141143

142-
143144
/* (non-Javadoc)
144145
* @see com.researchspace.dataverse.http.DataverseAPI#updateDataset(com.researchspace.dataverse.entities.facade.DatasetFacade, com.researchspace.dataverse.entities.Identifier)
145146
*/
@@ -150,15 +151,13 @@ public DatasetVersion updateDataset(DatasetFacade facade, Identifier id) {
150151
Dataset ds = new DatasetBuilder().build(facade);
151152
String json = marshalDataset(ds.getDatasetVersion());
152153

153-
154154
HttpEntity<String> entity = createHttpEntity(json);
155155
ParameterizedTypeReference<DataverseResponse<DatasetVersion>> type = new ParameterizedTypeReference<DataverseResponse<DatasetVersion>>() {
156156
};
157157
ResponseEntity<DataverseResponse<DatasetVersion>> resp = template.exchange(url, HttpMethod.PUT, entity,type);
158158

159159
handleError(resp);
160160
return resp.getBody().getData();
161-
162161
}
163162

164163
/* (non-Javadoc)
@@ -216,7 +215,6 @@ public long contentLength() throws IOException {
216215
}
217216
};
218217
return getDatasetFileList(metadata, dsIdentifier, resource);
219-
220218
}
221219

222220
private DatasetFileList getDatasetFileList(FileUploadMetadata metadata, Identifier dsIdentifier, AbstractResource resource) {
@@ -329,8 +327,6 @@ public MetadataBlock getMetadataById(String name) {
329327
return resp.getBody().getData();
330328
}
331329

332-
333-
334330
/* (non-Javadoc)
335331
* @see com.researchspace.dataverse.http.DataverseAPI#publishDataset(com.researchspace.dataverse.entities.Identifier, com.researchspace.dataverse.entities.Version)
336332
*/
@@ -345,7 +341,6 @@ public DataverseResponse<PublishedDataset> publishDataset(Identifier dsIdentifie
345341
ResponseEntity<DataverseResponse<PublishedDataset>> resp = template.exchange(url, HttpMethod.POST, entity, type);
346342
log.debug(resp.getBody().toString());
347343
return resp.getBody();
348-
349344
}
350345

351346
@Override
@@ -357,7 +352,6 @@ public DataverseResponse<DataversePost> publishDataverse(String dvName) {
357352
ResponseEntity<DataverseResponse<DataversePost>> resp = template.exchange(url, HttpMethod.POST, entity, type);
358353
log.debug(resp.getBody().toString());
359354
return resp.getBody();
360-
361355
}
362356

363357
@Override
@@ -369,7 +363,6 @@ public DvMessage getDatasetPublishPopupCustomText() {
369363
ResponseEntity<DataverseResponse<DvMessage>> resp = template.exchange(url, HttpMethod.GET, entity, type);
370364
log.debug(resp.getBody().toString());
371365
return resp.getBody().getData();
372-
373366
}
374367

375368
@Override
@@ -393,6 +386,6 @@ public DataverseResponse<List<Map<String, String>>> getDataverseMetadataLanguage
393386
entity, type);
394387
log.debug(resp.getBody().toString());
395388
return resp.getBody();
396-
397389
}
390+
398391
}

0 commit comments

Comments
 (0)