ckan2zenodo-library/src/test/java/org/gcube/tests/OneHitTest.java

64 lines
2.3 KiB
Java

package org.gcube.tests;
import java.net.MalformedURLException;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.gcube.data.publishing.ckan2zenodo.Ckan2Zenodo;
import org.gcube.data.publishing.ckan2zenodo.Ckan2ZenodoImpl;
import org.gcube.data.publishing.ckan2zenodo.model.CkanItemDescriptor;
import org.gcube.data.publishing.ckan2zenodo.model.CkanResource;
import org.gcube.data.publishing.ckan2zenodo.model.faults.ConfigurationException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.GcatException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.InvalidItemException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
public class OneHitTest {
public static void main(String[] args) throws GcatException, InvalidItemException, ZenodoException, ConfigurationException, TransformationException, InterruptedException, ExecutionException, MalformedURLException {
// String scope="/gcube/devsec";
String scope="/pred4s/preprod/preVRE";
TokenSetter.set(scope);
Ckan2Zenodo client=new Ckan2ZenodoImpl();
String toPublishItemName="a_sample_deliverable_4_zenodo";
// Get the item representation
CkanItemDescriptor item=client.read(toPublishItemName);
System.out.println("Item PROFILE is : "+item.getProfile());
//Get a preview of the deposition to be published
ZenodoDeposition preview=client.translate(item);
//Filter resources according to VRE policies
List<CkanResource> toFilter=client.filterResources(item);
//Eventually update values
preview.getMetadata().setAccess_conditions("Ask me");
//Actually publish to zenodo :
// Step 1 : metadata
System.out.println("Create/update metadata..");
preview=client.updatedMetadata(preview);
System.out.println("Publish files..");
//Step 2 : publish Resources
Future<ZenodoDeposition> future_Dep=client.uploadFiles(Collections.singleton(toFilter.get(0)), preview);
preview=future_Dep.get();
System.out.println("Publishing.. ");
//Finalize
System.out.println("DONE : "+client.publish(preview, item));
}
}