From 96d253cfb0e331e700e0788425b13120f617ea2b Mon Sep 17 00:00:00 2001 From: "miriam.baglioni" Date: Fri, 21 Apr 2023 15:10:22 +0200 Subject: [PATCH] changed to avoid problem with naming in the profile params --- .../dnetlib/openaire/common/ISClientImpl.java | 2 +- .../openaire/community/CommunityApiCore.java | 6 +- .../openaire/community/CommunityCommon.java | 7 +- .../community/CommunityConstants.java | 2 +- .../community/CommunityMappingUtils.java | 2 +- .../src/main/resources/global.properties | 20 ++-- .../main/resources/global.properties.globale | 104 ++++++++++++++++++ .../model/community/CommunityDetails.java | 10 +- .../CommunityWritableProperties.java | 12 +- 9 files changed, 137 insertions(+), 28 deletions(-) create mode 100644 apps/dnet-exporter-api/src/main/resources/global.properties.globale diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/common/ISClientImpl.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/common/ISClientImpl.java index 4636bdd8..dbec3e58 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/common/ISClientImpl.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/common/ISClientImpl.java @@ -73,7 +73,7 @@ public class ISClientImpl implements ISClient { final String xqueryTemplate = _getQuery(config.getFindObjectStore()); return _isLookUp(String.format(xqueryTemplate, dsId)); } catch (IOException | ISLookUpException e) { - throw new DsmException("unble to find objectstore for ds " + dsId); + throw new DsmException("unable to find objectstore for ds " + dsId); } } diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiCore.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiCore.java index 3b855352..9c09cd78 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiCore.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiCore.java @@ -102,8 +102,8 @@ public class CommunityApiCore {// implements CommunityClient{ isClient.updateContextParam(id, CPROFILE_SDG, Joiner.on(CSV_DELIMITER).join(details.getSdg()), true); } - if (details.getAdvancedConstraint() != null) { - isClient.updateContextParam(id, CPROFILE_ADVANCED_CONSTRAINT, "", false); + if (details.getAdvancedConstraints() != null) { + isClient.updateContextParam(id, CPROFILE_ADVANCED_CONSTRAINT, "", false); } if (details.getMainZenodoCommunity() != null) { @@ -390,7 +390,7 @@ public class CommunityApiCore {// implements CommunityClient{ final CommunityDetails cd = new CommunityDetails(); - cd.setAdvancedConstraint(advancedCosntraint); + cd.setAdvancedConstraints(advancedCosntraint); setCommunity(id, CommunityWritableProperties.fromDetails(cd)); diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityCommon.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityCommon.java index 96613c42..ff42afcb 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityCommon.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityCommon.java @@ -13,7 +13,6 @@ import eu.dnetlib.openaire.exporter.model.community.CommunityProject; import eu.dnetlib.openaire.exporter.model.community.CommunitySummary; import eu.dnetlib.openaire.exporter.model.community.CommunityWritableProperties; import eu.dnetlib.openaire.exporter.model.community.CommunityZenodoCommunity; -import eu.dnetlib.openaire.exporter.model.community.selectioncriteria.SelectionCriteria; import eu.dnetlib.openaire.exporter.model.context.Category; import eu.dnetlib.openaire.exporter.model.context.Concept; import eu.dnetlib.openaire.exporter.model.context.Context; @@ -240,14 +239,14 @@ public class CommunityCommon { .setValue(Joiner.on(CSV_DELIMITER) .join(community.getSdg())))); } - if (community.getAdvancedConstraint() != null) { + if (community.getAdvancedConstraints() != null) { if(context.getParams().containsKey(CPROFILE_ADVANCED_CONSTRAINT)) context.getParams() .replace(CPROFILE_ADVANCED_CONSTRAINT, Arrays.asList(new Param() - .setName(CPROFILE_ADVANCED_CONSTRAINT).setValue(new Gson().toJson(community.getAdvancedConstraint())))); + .setName(CPROFILE_ADVANCED_CONSTRAINT).setValue(new Gson().toJson(community.getAdvancedConstraints())))); else context.getParams().put(CPROFILE_ADVANCED_CONSTRAINT, Arrays.asList(new Param() - .setName(CPROFILE_ADVANCED_CONSTRAINT).setValue(new Gson().toJson(community.getAdvancedConstraint())))); + .setName(CPROFILE_ADVANCED_CONSTRAINT).setValue(new Gson().toJson(community.getAdvancedConstraints())))); } if(community.getMainZenodoCommunity() != null){ context.getParams() diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityConstants.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityConstants.java index 8c11cebf..2bbd751e 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityConstants.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityConstants.java @@ -34,7 +34,7 @@ public class CommunityConstants { public final static String CPROFILE_CREATIONDATE = "creationdate"; public final static String CPROFILE_FOS = "fos"; public final static String CPROFILE_SDG = "sdg"; - public final static String CPROFILE_ADVANCED_CONSTRAINT = "advancedConstraint"; + public final static String CPROFILE_ADVANCED_CONSTRAINT = "advancedConstraints"; // community project public final static String CPROJECT_FUNDER = "funder"; diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityMappingUtils.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityMappingUtils.java index b5d9cae9..fb5da147 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityMappingUtils.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityMappingUtils.java @@ -79,7 +79,7 @@ public class CommunityMappingUtils { } if (params.containsKey(CPROFILE_ADVANCED_CONSTRAINT)) { //In the map the string is the serialization of the json representing the selection criteria so it is a valid json - p.setAdvancedConstraint(SelectionCriteria.fromJson(asCsv(params.get(CPROFILE_ADVANCED_CONSTRAINT)))); + p.setAdvancedConstraints(SelectionCriteria.fromJson(asCsv(params.get(CPROFILE_ADVANCED_CONSTRAINT)))); } if (params.containsKey(CPROFILE_CREATIONDATE)){ diff --git a/apps/dnet-exporter-api/src/main/resources/global.properties b/apps/dnet-exporter-api/src/main/resources/global.properties index c92fca73..80c1d484 100644 --- a/apps/dnet-exporter-api/src/main/resources/global.properties +++ b/apps/dnet-exporter-api/src/main/resources/global.properties @@ -1,7 +1,12 @@ -services.is.host = localhost -services.is.port = 8280 -services.is.protocol = http -services.is.context = app +#services.is.host = localhost +services.is.host = dev-openaire.d4science.org +#services.is.port = 8280 +services.is.port = 443 +#services.is.protocol = http +services.is.protocol = https +#services.is.context = app +services.is.context = is +#services.is.baseurl = ${services.is.protocol}://${services.is.host}:${services.is.port}/${services.is.context}/services services.is.baseurl = ${services.is.protocol}://${services.is.host}:${services.is.port}/${services.is.context}/services openaire.exporter.isLookupUrl = ${services.is.baseurl}/isLookUp @@ -15,7 +20,7 @@ openaire.exporter.cxfClientConnectTimeout = 60000 openaire.exporter.cxfClientReceiveTimeout = 120000 # JDBC -#openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dnet_openaireplus +#openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dnet_openaire openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dev_openaire_8280 openaire.exporter.jdbc.user = dnetapi openaire.exporter.jdbc.pwd = dnetPwd @@ -46,9 +51,10 @@ openaire.exporter.findObjectStore = /eu/dnetlib/openaire/xquery/find openaire.exporter.findFunderContexts = /eu/dnetlib/openaire/xquery/findFunderContexts.xquery openaire.exporter.findCommunityContexts = /eu/dnetlib/openaire/xquery/findCommunityContexts.xquery openaire.exporter.findContextProfiles = /eu/dnetlib/openaire/xquery/findContextProfiles.xquery -openaire.exporter.findContextProfilesByType = /eu/dnetlib/openaire/xquery/findContextProfilesByType.xquery openaire.exporter.getRepoProfile = /eu/dnetlib/openaire/xquery/getRepoProfile.xquery +openaire.exporter.contentLoadQuery = { "$and" : [ { "system:profileName" : "Graph construction [PROD]" }, { "system:isCompletedSuccessfully" : "true" }, { "reuseContent" : "false" } ] } + # REST API CONFIGURATION openaire.exporter.swaggerDsm.apiTitle = OpenAIRE aggregator REST API openaire.exporter.swaggerDsm.apiDescription = The OpenAIRE data provision REST API allows developers to access the metadata information space of OpenAIRE programmatically. @@ -101,4 +107,4 @@ openaire.exporter.swaggerInfo.apiContactEmail = ${openaire.exporter.swaggerD # VOCABULARIES openaire.exporter.vocabularies.baseUrl = http://localhost:8980/provision/mvc/vocabularies openaire.exporter.vocabularies.countriesEndpoint = ${openaire.exporter.vocabularies.baseUrl}/dnet:countries.json -openaire.exporter.vocabularies.datasourceTypologiesEndpoint = ${openaire.exporter.vocabularies.baseUrl}/dnet:eosc_datasource_types.json +openaire.exporter.vocabularies.datasourceTypologiesEndpoint = ${openaire.exporter.vocabularies.baseUrl}/dnet:datasource_typologies.json diff --git a/apps/dnet-exporter-api/src/main/resources/global.properties.globale b/apps/dnet-exporter-api/src/main/resources/global.properties.globale new file mode 100644 index 00000000..c92fca73 --- /dev/null +++ b/apps/dnet-exporter-api/src/main/resources/global.properties.globale @@ -0,0 +1,104 @@ +services.is.host = localhost +services.is.port = 8280 +services.is.protocol = http +services.is.context = app +services.is.baseurl = ${services.is.protocol}://${services.is.host}:${services.is.port}/${services.is.context}/services + +openaire.exporter.isLookupUrl = ${services.is.baseurl}/isLookUp +openaire.exporter.objectStoreServiceUrl = ${services.is.baseurl}/objectStore +openaire.exporter.isRegistryServiceUrl = ${services.is.baseurl}/isRegistry + +openaire.exporter.requestWorkers = 10 +openaire.exporter.requestTimeout = 10 + +openaire.exporter.cxfClientConnectTimeout = 60000 +openaire.exporter.cxfClientReceiveTimeout = 120000 + +# JDBC +#openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dnet_openaireplus +openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dev_openaire_8280 +openaire.exporter.jdbc.user = dnetapi +openaire.exporter.jdbc.pwd = dnetPwd +openaire.exporter.jdbc.minIdle = 1 +openaire.exporter.jdbc.maxIdle = 20 +openaire.exporter.jdbc.maxRows = 100 + +# PROJECTS +openaire.exporter.project.dspaceHeadTemplate = classpath:/eu/dnetlib/openaire/st/projects_dspace_header.st +openaire.exporter.project.dspaceTemplate = classpath:/eu/dnetlib/openaire/st/projects_dspace_project.st +openaire.exporter.project.dspaceTailTemplate = classpath:/eu/dnetlib/openaire/st/projects_dspace_tail.st +openaire.exporter.project.eprintsTemplate = classpath:/eu/dnetlib/openaire/st/projects_eprints.st +openaire.exporter.project.tsvFields = Grant Agreement Number, Project Acronym, Project Title, Call ID, Start Date, End Date, OA Mandate on Publications, OA Mandate on Datasets, Discipline, Organization, Country, Role, Person Name, Person Second Names, Person Email +openaire.exporter.project.projectsFundingQueryTemplate=classpath:/eu/dnetlib/openaire/sql/projects_fundings.sql.st +openaire.exporter.project.flushSize = 1000 + +# DATSOURCES +openaire.exporter.datasource.title = Data Sources +openaire.exporter.datasource.mongoHost = localhost +openaire.exporter.datasource.mongoPort = 27017 +openaire.exporter.datasource.mongoConnectionsPerHost = 10 +openaire.exporter.datasource.mongoCollectionName = wf_logs +openaire.exporter.datasource.mongoDbName = dnet_logs_prod +openaire.exporter.datasource.mongoQueryLimit= 100 +openaire.exporter.findSolrIndexUrl = /eu/dnetlib/openaire/xquery/findSolrIndexUrl.xquery +openaire.exporter.findIndexDsInfo = /eu/dnetlib/openaire/xquery/findIndexDsInfo.xquery +openaire.exporter.findObjectStore = /eu/dnetlib/openaire/xquery/findObjectStore.xquery +openaire.exporter.findFunderContexts = /eu/dnetlib/openaire/xquery/findFunderContexts.xquery +openaire.exporter.findCommunityContexts = /eu/dnetlib/openaire/xquery/findCommunityContexts.xquery +openaire.exporter.findContextProfiles = /eu/dnetlib/openaire/xquery/findContextProfiles.xquery +openaire.exporter.findContextProfilesByType = /eu/dnetlib/openaire/xquery/findContextProfilesByType.xquery +openaire.exporter.getRepoProfile = /eu/dnetlib/openaire/xquery/getRepoProfile.xquery + +# REST API CONFIGURATION +openaire.exporter.swaggerDsm.apiTitle = OpenAIRE aggregator REST API +openaire.exporter.swaggerDsm.apiDescription = The OpenAIRE data provision REST API allows developers to access the metadata information space of OpenAIRE programmatically. +openaire.exporter.swaggerDsm.apiLicense = LICENSED UNDER GNU AFFERO GENERAL PUBLIC LICENSE. +openaire.exporter.swaggerDsm.apiLicenseUrl = https://www.gnu.org/licenses/agpl-3.0.txt +openaire.exporter.swaggerDsm.apiContacName = D-Net team +openaire.exporter.swaggerDsm.apiContactUrl = http://www.openaire.eu +openaire.exporter.swaggerDsm.apiContactEmail = dnet-team@isti.cnr.it + +openaire.exporter.swaggerProjects.apiTitle = OpenAIRE projects REST API +openaire.exporter.swaggerProjects.apiDescription = The OpenAIRE projects REST API allows programmatic access to funded research projects metadata. +openaire.exporter.swaggerProjects.apiLicense = ${openaire.exporter.swaggerDsm.apiLicense} +openaire.exporter.swaggerProjects.apiLicenseUrl = ${openaire.exporter.swaggerDsm.apiLicenseUrl} +openaire.exporter.swaggerProjects.apiContacName = ${openaire.exporter.swaggerDsm.apiContacName} +openaire.exporter.swaggerProjects.apiContactUrl = ${openaire.exporter.swaggerDsm.apiContactUrl} +openaire.exporter.swaggerProjects.apiContactEmail = ${openaire.exporter.swaggerDsm.apiContactEmail} + +openaire.exporter.swaggerFunders.apiTitle = OpenAIRE funders REST API +openaire.exporter.swaggerFunders.apiDescription = The OpenAIRE funders REST API allows programmatic access to the funding agencies metadata in OpenAIRE. +openaire.exporter.swaggerFunders.apiLicense = ${openaire.exporter.swaggerDsm.apiLicense} +openaire.exporter.swaggerFunders.apiLicenseUrl = ${openaire.exporter.swaggerDsm.apiLicenseUrl} +openaire.exporter.swaggerFunders.apiContacName = ${openaire.exporter.swaggerDsm.apiContacName} +openaire.exporter.swaggerFunders.apiContactUrl = ${openaire.exporter.swaggerDsm.apiContactUrl} +openaire.exporter.swaggerFunders.apiContactEmail = ${openaire.exporter.swaggerDsm.apiContactEmail} + +openaire.exporter.swaggerCommunities.apiTitle = OpenAIRE Communities REST API +openaire.exporter.swaggerCommunities.apiDescription = The OpenAIRE communities REST API allows programmatic access to the communities configurations in OpenAIRE. +openaire.exporter.swaggerCommunities.apiLicense = ${openaire.exporter.swaggerDsm.apiLicense} +openaire.exporter.swaggerCommunities.apiLicenseUrl = ${openaire.exporter.swaggerDsm.apiLicenseUrl} +openaire.exporter.swaggerCommunities.apiContacName = ${openaire.exporter.swaggerDsm.apiContacName} +openaire.exporter.swaggerCommunities.apiContactUrl = ${openaire.exporter.swaggerDsm.apiContactUrl} +openaire.exporter.swaggerCommunities.apiContactEmail = ${openaire.exporter.swaggerDsm.apiContactEmail} + +openaire.exporter.swaggerContexts.apiTitle = OpenAIRE Contexts REST API +openaire.exporter.swaggerContexts.apiDescription = The OpenAIRE contexts REST API allows programmatic access to the context profiles in OpenAIRE. +openaire.exporter.swaggerContexts.apiLicense = ${openaire.exporter.swaggerDsm.apiLicense} +openaire.exporter.swaggerContexts.apiLicenseUrl = ${openaire.exporter.swaggerDsm.apiLicenseUrl} +openaire.exporter.swaggerContexts.apiContacName = ${openaire.exporter.swaggerDsm.apiContacName} +openaire.exporter.swaggerContexts.apiContactUrl = ${openaire.exporter.swaggerDsm.apiContactUrl} +openaire.exporter.swaggerContexts.apiContactEmail = ${openaire.exporter.swaggerDsm.apiContactEmail} + +openaire.exporter.swaggerInfo.apiTitle = OpenAIRE Info REST API +openaire.exporter.swaggerInfo.apiDescription = The OpenAIRE Info REST API allows programmatic access to some interesting dates related to the content indexed in OpenAIRE. +openaire.exporter.swaggerInfo.apiLicense = ${openaire.exporter.swaggerDsm.apiLicense} +openaire.exporter.swaggerInfo.apiLicenseUrl = ${openaire.exporter.swaggerDsm.apiLicenseUrl} +openaire.exporter.swaggerInfo.apiContacName = ${openaire.exporter.swaggerDsm.apiContacName} +openaire.exporter.swaggerInfo.apiContactUrl = ${openaire.exporter.swaggerDsm.apiContactUrl} +openaire.exporter.swaggerInfo.apiContactEmail = ${openaire.exporter.swaggerDsm.apiContactEmail} + +# VOCABULARIES +openaire.exporter.vocabularies.baseUrl = http://localhost:8980/provision/mvc/vocabularies +openaire.exporter.vocabularies.countriesEndpoint = ${openaire.exporter.vocabularies.baseUrl}/dnet:countries.json +openaire.exporter.vocabularies.datasourceTypologiesEndpoint = ${openaire.exporter.vocabularies.baseUrl}/dnet:eosc_datasource_types.json diff --git a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityDetails.java b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityDetails.java index 40f6c8b9..de23e80e 100644 --- a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityDetails.java +++ b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityDetails.java @@ -27,7 +27,7 @@ public class CommunityDetails extends CommunitySummary { private List sdg; @Schema(description = "list of advanced criteria to associate results to this community") - private SelectionCriteria advancedConstraint; + private SelectionCriteria advancedConstraints; public CommunityDetails() {} @@ -79,11 +79,11 @@ public class CommunityDetails extends CommunitySummary { this.sdg = sdg; } - public SelectionCriteria getAdvancedConstraint() { - return advancedConstraint; + public SelectionCriteria getAdvancedConstraints() { + return advancedConstraints; } - public void setAdvancedConstraint(final SelectionCriteria advancedConstraint) { - this.advancedConstraint = advancedConstraint; + public void setAdvancedConstraints(final SelectionCriteria advancedConstraints) { + this.advancedConstraints = advancedConstraints; } } diff --git a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityWritableProperties.java b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityWritableProperties.java index 934633a8..c617e710 100644 --- a/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityWritableProperties.java +++ b/libs/dnet-exporter-model/src/main/java/eu/dnetlib/openaire/exporter/model/community/CommunityWritableProperties.java @@ -32,7 +32,7 @@ public class CommunityWritableProperties { private List sdg; @Schema(description = "Advanced constraint for the association of results to the community") - private SelectionCriteria advancedConstraint; + private SelectionCriteria advancedConstraints; @Schema(description = "status of the community, drives its visibility") private CommunityStatus status; @@ -51,7 +51,7 @@ public class CommunityWritableProperties { p.setMainZenodoCommunity(details.getZenodoCommunity()); p.setFos(details.getFos()); p.setSdg(details.getSdg()); - p.setAdvancedConstraint(details.getAdvancedConstraint()); + p.setAdvancedConstraints(details.getAdvancedConstraints()); return p; } @@ -71,12 +71,12 @@ public class CommunityWritableProperties { this.sdg = sdg; } - public SelectionCriteria getAdvancedConstraint() { - return advancedConstraint; + public SelectionCriteria getAdvancedConstraints() { + return advancedConstraints; } - public void setAdvancedConstraint(final SelectionCriteria advancedConstraint) { - this.advancedConstraint = advancedConstraint; + public void setAdvancedConstraints(final SelectionCriteria advancedConstraints) { + this.advancedConstraints = advancedConstraints; } public String getName() {