diff --git a/pom.xml b/pom.xml
index 42572ec..2e86a1c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
org.gcube.data.publishing
ckan2zenodo-library
- 0.0.1
+ 0.0.2-SNAPSHOT
CKAN 2 Zenodo Library
Library to publish d4science CKAN items into Zenodo
@@ -31,7 +31,7 @@
org.gcube.distribution
gcube-bom
- 1.4.0
+ 1.5.0
pom
import
diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java
index 53c09f5..50ae1f5 100644
--- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java
+++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/Translator.java
@@ -1,8 +1,10 @@
package org.gcube.data.publishing.ckan2zenodo;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -19,8 +21,10 @@ import org.gcube.data.publishing.ckan2zenodo.model.parsing.Mapping.Source.Value;
import org.gcube.data.publishing.ckan2zenodo.model.parsing.ResourceFilter;
import org.gcube.data.publishing.ckan2zenodo.model.parsing.ResourceFilter.Filter;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.Contributor;
+import org.gcube.data.publishing.ckan2zenodo.model.zenodo.Creator;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata.AccessRights;
+import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata.UploadType;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.RelatedIdentifier;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
@@ -62,10 +66,15 @@ public class Translator {
if(meta==null)
meta=new DepositionMetadata();
+ // UPLOAD TYPE
+ meta.setUpload_type(UploadType.other);
+
+ // TITLE
meta.setTitle(toTransform.getTitle());
+ // DESCRIPTION
meta.setDescription(toTransform.getNotes());
- // Access Right
+ // ACCESS RIGHTS
if(toTransform.isOpen())
meta.setAccess_right(AccessRights.open);
else {
@@ -73,24 +82,35 @@ public class Translator {
meta.setAccess_conditions("Visit the VRE "+toTransform.getVRE()+" to access it.");
}
+ // LICENSE
meta.setLicense(toTransform.getLicenseId());
+ // TAGS
meta.setKeywords(new ArrayList(toTransform.getTags()));
- //Related Identifiers
+ //RELATED IDENTIFIER
String itemUrl=toTransform.getItemUrl();
ArrayList relatedIdentifiers=new ArrayList<>();
- if(itemUrl!=null) relatedIdentifiers.add(new RelatedIdentifier(itemUrl,RelatedIdentifier.Relation.compiles));
+ if(itemUrl!=null) relatedIdentifiers.add(new RelatedIdentifier(itemUrl,RelatedIdentifier.Relation.isCompiledBy));
meta.setRelated_identifiers(relatedIdentifiers);
- //Contributors
+
+
+ //CONTRIBUTORS & CREATORS
ArrayList contributors=new ArrayList<>();
+ ArrayList creators=new ArrayList<>();
+
+
String authorName=toTransform.getAuthor();
if(authorName!=null) {
Contributor author=new Contributor(Contributor.Type.Producer);
author.setName(authorName);
contributors.add(author);
+
+
+ creators.add(new Creator(authorName));
+
}
String maintainerName=toTransform.getAuthor();
@@ -98,15 +118,29 @@ public class Translator {
Contributor maintainer=new Contributor(Contributor.Type.DataCurator);
maintainer.setName(maintainerName);
contributors.add(maintainer);
+
+
+ creators.add(new Creator(authorName));
}
+
+ // D4Science as contributor
+ Contributor d4Science=new Contributor(Contributor.Type.HostingInstitution);
+ d4Science.setName("D4Science");
+
+
meta.setContributors(contributors);
-
+ meta.setCreators(creators);
+
+
+ // VERSION
meta.setVersion(toTransform.getVersion());
- // Dates
-
-
+ // DATES
+ // PUBLICATION DATE = now
+ meta.setPublication_date(Date.from(Instant.now()));
+
+
deposition.setMetadata(meta);
// profile specific mappings
diff --git a/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/Zenodo.java b/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/Zenodo.java
index d939162..263dd6c 100644
--- a/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/Zenodo.java
+++ b/src/main/java/org/gcube/data/publishing/ckan2zenodo/clients/Zenodo.java
@@ -2,10 +2,6 @@ package org.gcube.data.publishing.ckan2zenodo.clients;
import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.nio.file.Files;
-import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
@@ -39,6 +35,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
+import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -84,7 +81,7 @@ public class Zenodo {
return new Zenodo(toSet);
}
-
+ @Getter
@NonNull
private ZenodoCredentials credentials;
diff --git a/src/test/java/org/gcube/tests/InspectCredentials.java b/src/test/java/org/gcube/tests/InspectCredentials.java
new file mode 100644
index 0000000..e721b2c
--- /dev/null
+++ b/src/test/java/org/gcube/tests/InspectCredentials.java
@@ -0,0 +1,19 @@
+package org.gcube.tests;
+
+import org.gcube.data.publishing.ckan2zenodo.clients.Zenodo;
+import org.gcube.data.publishing.ckan2zenodo.model.ZenodoCredentials;
+import org.gcube.data.publishing.ckan2zenodo.model.faults.ConfigurationException;
+
+public class InspectCredentials {
+
+ public static void main(String[] args) throws ConfigurationException {
+ TokenSetter.set("/d4science.research-infrastructures.eu/D4Research/AGINFRAplusDev");
+
+ ZenodoCredentials credentials=Zenodo.get().getCredentials();
+
+ System.out.println(credentials.getBaseUrl());
+ System.out.println(credentials.getKey());
+
+ }
+
+}