From 854b2e7aa1ab8a00e87707b4134879547631e274 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Thu, 18 Jun 2020 12:21:43 +0200 Subject: [PATCH] Fixed default Translation --- pom.xml | 4 +- .../publishing/ckan2zenodo/Translator.java | 50 ++++++++++++++++--- .../ckan2zenodo/clients/Zenodo.java | 7 +-- .../org/gcube/tests/InspectCredentials.java | 19 +++++++ 4 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 src/test/java/org/gcube/tests/InspectCredentials.java 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()); + + } + +}