Replace DB DOIFunder with a json config file
This commit is contained in:
parent
c3aff92cd4
commit
ea72f64ed4
|
@ -1,11 +0,0 @@
|
|||
package eu.eudat.data.dao.entities;
|
||||
|
||||
import eu.eudat.data.dao.DatabaseAccessLayer;
|
||||
import eu.eudat.data.entities.DoiFunder;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public interface DoiFunderDao extends DatabaseAccessLayer<DoiFunder, UUID> {
|
||||
|
||||
DoiFunder findFunderByName(String name);
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
package eu.eudat.data.dao.entities;
|
||||
|
||||
import eu.eudat.data.dao.DatabaseAccess;
|
||||
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
||||
import eu.eudat.data.entities.DoiFunder;
|
||||
import eu.eudat.queryable.QueryableList;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@Component("DoiFunderDao")
|
||||
public class DoiFunderDaoImpl extends DatabaseAccess<DoiFunder> implements DoiFunderDao {
|
||||
|
||||
@Autowired
|
||||
public DoiFunderDaoImpl(DatabaseService<DoiFunder> databaseService) {
|
||||
super(databaseService);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoiFunder findFunderByName(String name) {
|
||||
return this.asQueryable().toList().stream().filter(doiFunder -> name.contains(doiFunder.getName()) || doiFunder.getName().contains(name)).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoiFunder createOrUpdate(DoiFunder item) {
|
||||
return this.getDatabaseService().createOrUpdate(item, DoiFunder.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompletableFuture<DoiFunder> createOrUpdateAsync(DoiFunder item) {
|
||||
return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item));
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoiFunder find(UUID id) {
|
||||
return this.getDatabaseService().getQueryable(DoiFunder.class).where(((builder, root) -> builder.equal(root.get("id"), id))).getSingle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoiFunder find(UUID id, String hint) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(DoiFunder item) {
|
||||
this.getDatabaseService().delete(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueryableList<DoiFunder> asQueryable() {
|
||||
return this.getDatabaseService().getQueryable(DoiFunder.class);
|
||||
}
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
package eu.eudat.data.entities;
|
||||
|
||||
import eu.eudat.queryable.queryableentity.DataEntity;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@Entity
|
||||
@Table(name = "\"DoiFunder\"")
|
||||
public class DoiFunder implements DataEntity<DoiFunder, UUID> {
|
||||
|
||||
@Id
|
||||
private UUID id;
|
||||
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
|
||||
@Column(name = "doi")
|
||||
private String doi;
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(UUID id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getDoi() {
|
||||
return doi;
|
||||
}
|
||||
|
||||
public void setDoi(String doi) {
|
||||
this.doi = doi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(DoiFunder entity) {
|
||||
this.name = entity.name;
|
||||
this.doi = entity.doi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getKeys() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoiFunder buildFromTuple(List<Tuple> tuple, List<String> fields, String base) {
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -28,6 +28,7 @@ import eu.eudat.exceptions.security.UnauthorisedException;
|
|||
import eu.eudat.logic.builders.entity.UserInfoBuilder;
|
||||
import eu.eudat.logic.mapper.elastic.DmpMapper;
|
||||
import eu.eudat.logic.mapper.elastic.criteria.DmpCriteriaMapper;
|
||||
import eu.eudat.logic.proxy.config.DOIFunder;
|
||||
import eu.eudat.logic.proxy.config.configloaders.ConfigLoader;
|
||||
import eu.eudat.logic.services.ApiContext;
|
||||
import eu.eudat.logic.services.forms.VisibilityRuleService;
|
||||
|
@ -2094,9 +2095,11 @@ public class DataManagementPlanManager {
|
|||
String grantReferenceHead = dmp.getGrant().getReference().split(":")[0];
|
||||
if (grantReferenceHead.equals("openaire")) {
|
||||
String grantReferenceTail = dmp.getGrant().getReference().split(":")[3];
|
||||
DoiFunder doiFunder = this.apiContext.getOperationsContext().getDatabaseRepository().getDoiFunderDao().findFunderByName(dmp.getGrant().getFunder().getLabel());
|
||||
DOIFunder doiFunder = configLoader.getDOIFunders().stream()
|
||||
.filter(doiFunder1 -> dmp.getGrant().getFunder().getLabel().contains(doiFunder1.getFunder()) || doiFunder1.getFunder().contains(dmp.getGrant().getFunder().getLabel()))
|
||||
.findFirst().orElse(null);
|
||||
if (doiFunder != null) {
|
||||
String finalId = doiFunder.getDoi() + "::" + grantReferenceTail;
|
||||
String finalId = doiFunder.getDOI() + "::" + grantReferenceTail;
|
||||
dataBuilder.append(" \"grants\": [{\n");
|
||||
dataBuilder.append(" \t\t\"id\": \"").append(finalId).append("\"\n}],\n");
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package eu.eudat.logic.proxy.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class DOIFunder {
|
||||
|
||||
@JsonProperty("Funder")
|
||||
private String funder;
|
||||
@JsonProperty("DOI")
|
||||
private String DOI;
|
||||
|
||||
public String getFunder() {
|
||||
return funder;
|
||||
}
|
||||
|
||||
public void setFunder(String funder) {
|
||||
this.funder = funder;
|
||||
}
|
||||
|
||||
public String getDOI() {
|
||||
return DOI;
|
||||
}
|
||||
|
||||
public void setDOI(String DOI) {
|
||||
this.DOI = DOI;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package eu.eudat.logic.proxy.config.configloaders;
|
||||
|
||||
import eu.eudat.logic.proxy.config.DOIFunder;
|
||||
import eu.eudat.logic.proxy.config.ExternalUrls;
|
||||
import eu.eudat.logic.security.customproviders.ConfigurableProvider.entities.ConfigurableProviders;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
|
@ -13,4 +14,5 @@ public interface ConfigLoader {
|
|||
XWPFDocument getDocument();
|
||||
ConfigurableProviders getConfigurableProviders();
|
||||
Map<String, String> getKeyToSourceMap();
|
||||
List<DOIFunder> getDOIFunders();
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package eu.eudat.logic.proxy.config.configloaders;
|
|||
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.eudat.logic.proxy.config.DOIFunder;
|
||||
import eu.eudat.logic.proxy.config.ExternalUrls;
|
||||
import eu.eudat.logic.security.customproviders.ConfigurableProvider.entities.ConfigurableProviders;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
|
@ -32,12 +33,14 @@ import java.util.stream.Collectors;
|
|||
//@Profile("devel")
|
||||
public class DefaultConfigLoader implements ConfigLoader {
|
||||
private static final Logger logger = LoggerFactory.getLogger(DefaultConfigLoader.class);
|
||||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
private ExternalUrls externalUrls;
|
||||
private List<String> rdaProperties;
|
||||
private XWPFDocument document;
|
||||
private ConfigurableProviders configurableProviders;
|
||||
private Map<String, String> keyToSourceMap;
|
||||
private List<DOIFunder> doiFunders = new ArrayList<>();
|
||||
|
||||
@Autowired
|
||||
private Environment environment;
|
||||
|
@ -212,6 +215,19 @@ public class DefaultConfigLoader implements ConfigLoader {
|
|||
return keyToSourceMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DOIFunder> getDOIFunders() {
|
||||
if (doiFunders == null || doiFunders.isEmpty()) {
|
||||
try {
|
||||
List<Map<String, Object>> tempdoiFunders = mapper.readValue(getStreamFromPath(environment.getProperty("configuration.doi_funder")), List.class);
|
||||
doiFunders = tempdoiFunders.stream().map(map -> mapper.convertValue(map, DOIFunder.class) ).collect(Collectors.toList());
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
return doiFunders;
|
||||
}
|
||||
|
||||
private Document getXmlDocumentFromFilePath(String filePath) {
|
||||
InputStream is = null;
|
||||
Document doc;
|
||||
|
|
|
@ -58,7 +58,5 @@ public interface DatabaseRepository {
|
|||
|
||||
NotificationDao getNotificationDao();
|
||||
|
||||
DoiFunderDao getDoiFunderDao();
|
||||
|
||||
<T> void detachEntity(T entity);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,6 @@ public class DatabaseRepositoryImpl implements DatabaseRepository {
|
|||
private FunderDao funderDao;
|
||||
private LockDao lockDao;
|
||||
private NotificationDao notificationDao;
|
||||
private DoiFunderDao doiFunderDao;
|
||||
|
||||
private EntityManager entityManager;
|
||||
|
||||
|
@ -292,16 +291,6 @@ public class DatabaseRepositoryImpl implements DatabaseRepository {
|
|||
return notificationDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DoiFunderDao getDoiFunderDao() {
|
||||
return doiFunderDao;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setDoiFunderDao(DoiFunderDao doiFunderDao) {
|
||||
this.doiFunderDao = doiFunderDao;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setNotificationDao(NotificationDao notificationDao) {
|
||||
this.notificationDao = notificationDao;
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
[
|
||||
{
|
||||
"Funder": "Australian Research Council",
|
||||
"DOI": "10.13039/501100000923"
|
||||
},
|
||||
{
|
||||
"Funder": "Austrian Science Fund",
|
||||
"DOI": "10.13039/501100002428"
|
||||
},
|
||||
{
|
||||
"Funder": "European Commission",
|
||||
"DOI": "10.13039/501100000780"
|
||||
},
|
||||
{
|
||||
"Funder": "European Environment Agency",
|
||||
"DOI": "10.13039/501100000806"
|
||||
},
|
||||
{
|
||||
"Funder": "Academy of Finland",
|
||||
"DOI": "10.13039/501100002341"
|
||||
},
|
||||
{
|
||||
"Funder": "Hrvatska Zaklada za Znanost",
|
||||
"DOI": "10.13039/501100004488"
|
||||
},
|
||||
{
|
||||
"Funder": "Fundação para a Ciência e a Tecnologia",
|
||||
"DOI": "10.13039/501100001871"
|
||||
},
|
||||
{
|
||||
"Funder": "Ministarstvo Prosvete, Nauke i Tehnološkog Razvoja",
|
||||
"DOI": "10.13039/501100004564"
|
||||
},
|
||||
{
|
||||
"Funder": "Ministarstvo Znanosti, Obrazovanja i Sporta",
|
||||
"DOI": "10.13039/501100006588"
|
||||
},
|
||||
{
|
||||
"Funder": "National Health and Medical Research Council",
|
||||
"DOI": "10.13039/501100000925"
|
||||
},
|
||||
{
|
||||
"Funder": "National Institutes of Health",
|
||||
"DOI": "10.13039/100000002"
|
||||
},
|
||||
{
|
||||
"Funder": "National Science Foundation",
|
||||
"DOI": "10.13039/100000001"
|
||||
},
|
||||
{
|
||||
"Funder": "Nederlandse Organisatie voor Wetenschappelijk Onderzoek",
|
||||
"DOI": "10.13039/501100003246"
|
||||
},
|
||||
{
|
||||
"Funder": "Research Councils",
|
||||
"DOI": "10.13039/501100000690"
|
||||
},
|
||||
{
|
||||
"Funder": "Schweizerischer Nationalfonds zur Förderung der wissenschaftlichen Forschung",
|
||||
"DOI": "10.13039/501100001711"
|
||||
},
|
||||
{
|
||||
"Funder": "Science Foundation Ireland",
|
||||
"DOI": "10.13039/501100001602"
|
||||
},
|
||||
{
|
||||
"Funder": "Wellcome Trust",
|
||||
"DOI": "10.13039/100004440"
|
||||
}
|
||||
]
|
|
@ -26,6 +26,7 @@ configuration.externalUrls=externalUrls/ExternalUrls.xml
|
|||
configuration.rda=RDACommonStandards.txt
|
||||
configuration.h2020template=documents/h2020.docx
|
||||
configuration.configurable_login_providers=configurableLoginProviders.json
|
||||
configuration.doi_funder=DOI_Funder.json
|
||||
|
||||
####################EMAIL FILE TEMPLATES OVERRIDES CONFIGURATIONS##########
|
||||
email.invite=classpath:templates/email/email.html
|
||||
|
|
|
@ -20,6 +20,7 @@ configuration.externalUrls=externalUrls/ExternalUrls.xml
|
|||
configuration.rda=RDACommonStandards.txt
|
||||
configuration.h2020template=documents/h2020.docx
|
||||
configuration.configurable_login_providers=ConfigurableLoginProviders.json
|
||||
configuration.doi_funder=DOI_Funder.json
|
||||
|
||||
####################SPRING MAIL CONFIGURATIONS#################
|
||||
spring.mail.default-encoding=UTF-8
|
||||
|
|
|
@ -20,6 +20,7 @@ configuration.externalUrls=externalUrls/ExternalUrls.xml
|
|||
configuration.rda=RDACommonStandards.txt
|
||||
configuration.h2020template=documents/h2020.docx
|
||||
configuration.configurable_login_providers=ConfigurableLoginProviders.json
|
||||
configuration.doi_funder=DOI_Funder.json
|
||||
|
||||
####################INVITATION MAIL CONFIGURATIONS##############
|
||||
####################GENERIC MAIL CONFIGURATIONS#################
|
||||
|
|
|
@ -41,6 +41,7 @@ configuration.externalUrls=externalUrls/ExternalUrls.xml
|
|||
configuration.rda=RDACommonStandards.txt
|
||||
configuration.h2020template=documents/h2020.docx
|
||||
configuration.configurable_login_providers=ConfigurableLoginProviders.json
|
||||
configuration.doi_funder=DOI_Funder.json
|
||||
|
||||
####################EMAIL FILE TEMPLATES OVERRIDES CONFIGURATIONS##########
|
||||
email.invite=file:templates/email/email.html
|
||||
|
|
Loading…
Reference in New Issue