Fixed empty mappings
This commit is contained in:
parent
40fa4bd48c
commit
57294e0a6c
|
@ -19,12 +19,22 @@ import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationExceptio
|
|||
import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException;
|
||||
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
||||
@Slf4j
|
||||
public class Ckan2ZenodoImpl implements Ckan2Zenodo{
|
||||
|
||||
|
||||
private Zenodo z=null;
|
||||
|
||||
private synchronized Zenodo getZenodo() throws ConfigurationException {
|
||||
if(z==null)
|
||||
z=Zenodo.get();
|
||||
return z;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CkanItemDescriptor read(String itemName) throws GcatException {
|
||||
try{
|
||||
|
@ -40,7 +50,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
|
|||
ZenodoDeposition toUpdate=null;
|
||||
CkanRelatedIdentifier doi=desc.getZenodoDoi();
|
||||
if(doi!=null) {
|
||||
Zenodo z=Zenodo.get();
|
||||
Zenodo z=getZenodo();
|
||||
toUpdate=z.readDeposition(doi.getZenodoId());
|
||||
}
|
||||
Translator tr=new TransformerManager().getByProfile(desc.getProfile());
|
||||
|
@ -49,17 +59,17 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
|
|||
|
||||
@Override
|
||||
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException, ConfigurationException {
|
||||
Zenodo z=Zenodo.get();
|
||||
Zenodo z=getZenodo();
|
||||
//initialize if not created
|
||||
if(toUpdate.getSubmitted()==null) {
|
||||
ZenodoDeposition created=z.createNew();
|
||||
created.setMetadata(toUpdate.getMetadata());
|
||||
toUpdate=created;
|
||||
}
|
||||
if(toUpdate.getSubmitted())
|
||||
Zenodo.get().unlockPublished(toUpdate.getId());
|
||||
if(toUpdate.getSubmitted()&&toUpdate.getState().equals("done"))
|
||||
z.unlockPublished(toUpdate.getId());
|
||||
|
||||
return Zenodo.get().updateMetadata(toUpdate);
|
||||
return z.updateMetadata(toUpdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -70,10 +80,10 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
|
|||
|
||||
@Override
|
||||
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload, ZenodoDeposition deposition) throws ZenodoException, ConfigurationException {
|
||||
final Zenodo z=Zenodo.get();
|
||||
final Zenodo z=getZenodo();
|
||||
|
||||
if(deposition.getSubmitted())
|
||||
Zenodo.get().unlockPublished(deposition.getId());
|
||||
if(deposition.getSubmitted()&&deposition.getState().equals("done"))
|
||||
z.unlockPublished(deposition.getId());
|
||||
|
||||
Callable<ZenodoDeposition> call=new Callable<ZenodoDeposition>() {
|
||||
@Override
|
||||
|
@ -94,40 +104,20 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
|
|||
}
|
||||
|
||||
@Override
|
||||
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException, ConfigurationException, InvalidItemException, MalformedURLException {
|
||||
if(dep.getSubmitted())
|
||||
Zenodo.get().unlockPublished(dep.getId());
|
||||
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException, ConfigurationException, InvalidItemException, MalformedURLException {
|
||||
Zenodo z=getZenodo();
|
||||
if(dep.getSubmitted()&&dep.getState().equals("done"))
|
||||
z.unlockPublished(dep.getId());
|
||||
// Publishing to zenodo
|
||||
ZenodoDeposition toReturn =Zenodo.get().publish(dep);
|
||||
ZenodoDeposition toReturn =z.publish(dep);
|
||||
// Updateing item
|
||||
if(toUpdate.getZenodoDoi()==null) {
|
||||
toUpdate.setZenodoDoi(CkanRelatedIdentifier.getZenodo(toReturn.getDoi()));
|
||||
toUpdate.setZenodoDoi(CkanRelatedIdentifier.getZenodo(toReturn.getDOIUrl()));
|
||||
GCat.updateItem(toUpdate);
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
|
||||
// public static void preview(String itemName) throws MalformedURLException {
|
||||
// // looking for gcat..
|
||||
// GCat gCat=new GCat();
|
||||
// // looking for item
|
||||
// CkanItemDescriptor desc=gCat.getByID(itemName);
|
||||
//
|
||||
// //transforming
|
||||
//// ZenodoDeposition deposition=TransformerManager.transform(desc);
|
||||
//
|
||||
// // publishing / update to zenodo
|
||||
// Zenodo z=new Zenodo(getZenodoToken());
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// private static final ZenodoCredentials getZenodoToken() {
|
||||
// throw new RuntimeException();
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.gcube.data.publishing.ckan2zenodo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -131,7 +132,13 @@ public class Translator {
|
|||
break;
|
||||
}
|
||||
case jsonPath : {
|
||||
sourceValues.addAll(sourceCtx.read(v.getValue()));
|
||||
for(String s: ((Collection<? extends String>) sourceCtx.read(v.getValue()))){
|
||||
if(s!=null) {
|
||||
s=s.trim();
|
||||
if(!s.isEmpty())sourceValues.add(s);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package org.gcube.data.publishing.ckan2zenodo.model;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
|
@ -12,8 +12,8 @@ import lombok.ToString;
|
|||
@ToString
|
||||
public class CkanRelatedIdentifier {
|
||||
|
||||
public static CkanRelatedIdentifier getZenodo(String doi) {
|
||||
return new CkanRelatedIdentifier("URL", "isReferencedBy", doi);
|
||||
public static CkanRelatedIdentifier getZenodo(URL doi) {
|
||||
return new CkanRelatedIdentifier("URL", "isReferencedBy", doi.toString());
|
||||
}
|
||||
|
||||
// @NonNull
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.gcube.data.publishing.ckan2zenodo.model.zenodo;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
@ -14,6 +15,7 @@ public class ZenodoDeposition {
|
|||
@JsonFormat(pattern = Commons.ISO_DATE_PATTERN)
|
||||
private Date created;
|
||||
private String doi;
|
||||
private DepositionLinks links;
|
||||
private ArrayList<FileDeposition> files;
|
||||
private Integer id;
|
||||
private DepositionMetadata metadata;
|
||||
|
@ -26,5 +28,11 @@ public class ZenodoDeposition {
|
|||
private Boolean submitted;
|
||||
private String title;
|
||||
|
||||
|
||||
public URL getDOIUrl() throws MalformedURLException {
|
||||
try {
|
||||
return new URL(links.getConceptdoi());
|
||||
}catch(Throwable t) {
|
||||
return new URL("https://doi.org/"+doi);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,13 @@ package org.gcube.tests;
|
|||
|
||||
import java.net.MalformedURLException;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.data.publishing.ckan2zenodo.clients.GCat;
|
||||
import org.gcube.data.publishing.ckan2zenodo.model.CkanItemDescriptor;
|
||||
import org.gcube.gcat.client.Item;
|
||||
import org.gcube.gcat.client.Profile;
|
||||
import org.junit.Test;
|
||||
|
||||
public class GCatTests {
|
||||
|
@ -20,7 +23,13 @@ public class GCatTests {
|
|||
|
||||
System.out.println(item.getProfile());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void listProfiles() throws WebApplicationException, MalformedURLException {
|
||||
TokenSetter.set("/gcube/devsec");
|
||||
System.out.println(SecurityTokenProvider.instance.get());
|
||||
System.out.println("PROFILES : ");
|
||||
System.out.println(new Profile().list());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void publishUpdate() throws MalformedURLException {
|
||||
|
|
|
@ -21,7 +21,10 @@ public class OneHitTest {
|
|||
|
||||
|
||||
public static void main(String[] args) throws GcatException, InvalidItemException, ZenodoException, ConfigurationException, TransformationException, InterruptedException, ExecutionException, MalformedURLException {
|
||||
TokenSetter.set("/gcube/devsec/devVRE");
|
||||
String scope="/gcube/devsec";
|
||||
// String scope="/pred4s/preprod/preVRE";
|
||||
TokenSetter.set(scope);
|
||||
|
||||
Ckan2Zenodo client=new Ckan2ZenodoImpl();
|
||||
String toPublishItemName="rasff_vizualizationhu_gif";
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ public class ZenodoTests {
|
|||
}
|
||||
dep=z.publish(dep);
|
||||
|
||||
desc.setZenodoDoi(CkanRelatedIdentifier.getZenodo(dep.getDoi()));
|
||||
desc.setZenodoDoi(CkanRelatedIdentifier.getZenodo(dep.getDOIUrl()));
|
||||
|
||||
// Change title
|
||||
String fakeTitle="Dummy Title";
|
||||
|
|
Loading…
Reference in New Issue