Credentials loading from IS

This commit is contained in:
Fabio Sinibaldi 2020-01-07 18:03:26 +01:00
parent a5a1383ab1
commit 4ceed8a581
5 changed files with 42 additions and 11 deletions

View File

@ -52,8 +52,9 @@ public interface Ckan2Zenodo {
* @param toUpdate
* @return
* @throws ZenodoException
* @throws ConfigurationException
*/
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException;
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException, ConfigurationException;
/**
* Filters ckan resources of @param desc by using mappings declared in current VRE
@ -72,8 +73,9 @@ public interface Ckan2Zenodo {
* @param deposition
* @return
* @throws ZenodoException
* @throws ConfigurationException
*/
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload,ZenodoDeposition deposition) throws ZenodoException;
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload,ZenodoDeposition deposition) throws ZenodoException, ConfigurationException;
/**
* Publishes @param dep, setting/updateing DOI reference into @param toUpdate
@ -82,7 +84,8 @@ public interface Ckan2Zenodo {
* @param toUpdate
* @return
* @throws ZenodoException
* @throws ConfigurationException
*/
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException;
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException, ConfigurationException;
}

View File

@ -47,7 +47,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
}
@Override
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException {
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException, ConfigurationException {
if(toUpdate.getSubmitted())
Zenodo.get().unlockPublished(toUpdate.getId());
@ -61,7 +61,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
}
@Override
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload, ZenodoDeposition deposition) throws ZenodoException {
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload, ZenodoDeposition deposition) throws ZenodoException, ConfigurationException {
final Zenodo z=Zenodo.get();
if(deposition.getSubmitted())
@ -86,7 +86,7 @@ public class Ckan2ZenodoImpl implements Ckan2Zenodo{
}
@Override
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException {
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException, ConfigurationException {
if(dep.getSubmitted())
Zenodo.get().unlockPublished(dep.getId());

View File

@ -16,12 +16,15 @@ public class LocalConfiguration {
public static class Configuration{
public static final String THREAD_POOL_SIZE="THREAD_POOL_SIZE";
public static final String ZENODO_ENDPOINT_CATEGORY="ZENODO_ENDPOINT_CATEGORY";
public static final String ZENODO_ENDPOINT_PLATFORM="ZENODO_ENDPOINT_PLATFORM";
}
public static final Map<String,Object> defaultConfigurationMap=new HashMap<String,Object>();
static {
defaultConfigurationMap.put(Configuration.THREAD_POOL_SIZE, "5");
defaultConfigurationMap.put(Configuration.ZENODO_ENDPOINT_CATEGORY,"Repository");
defaultConfigurationMap.put(Configuration.ZENODO_ENDPOINT_PLATFORM,"Zenodo");
}
private static LocalConfiguration instance=null;

View File

@ -5,6 +5,7 @@ import java.io.IOException;
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;
@ -14,8 +15,14 @@ import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.gcube.common.resources.gcore.ServiceEndpoint;
import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint;
import org.gcube.data.publishing.ckan2zenodo.Fixer;
import org.gcube.data.publishing.ckan2zenodo.LocalConfiguration;
import org.gcube.data.publishing.ckan2zenodo.LocalConfiguration.Configuration;
import org.gcube.data.publishing.ckan2zenodo.commons.IS;
import org.gcube.data.publishing.ckan2zenodo.model.ZenodoCredentials;
import org.gcube.data.publishing.ckan2zenodo.model.faults.ConfigurationException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.FileDeposition;
@ -61,9 +68,16 @@ public class Zenodo {
}
public static final Zenodo get() {
// READ FROM IS
throw new RuntimeException("IMPLEMENT THIS");
public static final Zenodo get() throws ConfigurationException {
String eprCategory=LocalConfiguration.getProperty(Configuration.ZENODO_ENDPOINT_CATEGORY);
String eprPlatform=LocalConfiguration.getProperty(Configuration.ZENODO_ENDPOINT_PLATFORM);
List<ServiceEndpoint> eps=IS.queryForServiceEndpoints(eprCategory,eprPlatform);
if(eps.isEmpty()) throw new ConfigurationException("No Zenodo Credentials found ("+eprCategory+" : "+eprPlatform+")");
if(eps.size()>1) throw new ConfigurationException("Multiple ["+eps.size()+"] Zenodo Credentials found ("+eprCategory+" : "+eprPlatform+")");
AccessPoint se=eps.get(0).profile().accessPoints().iterator().next();
ZenodoCredentials toSet=new ZenodoCredentials(se.password(), se.address());
return new Zenodo(toSet);
}

View File

@ -5,7 +5,7 @@ import java.net.MalformedURLException;
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.junit.Before;
import org.gcube.gcat.client.Item;
import org.junit.Test;
public class GCatTests {
@ -21,4 +21,15 @@ public class GCatTests {
System.out.println(item.getProfile());
}
@Test
public void publishUpdate() throws MalformedURLException {
TokenSetter.set("/gcube/devsec/devVRE");
System.out.println(SecurityTokenProvider.instance.get());
String json=TestCommons.convertStreamToString(GCatTests.class.getResourceAsStream("/ResearchObject.json"));
new Item().create(json);
// GCat.updateItem(toUpdate);
}
}