improving corner case management

This commit is contained in:
Luca Frosini 2023-01-12 16:21:11 +01:00
parent 42e619a5b7
commit 4f831f19d7
2 changed files with 18 additions and 9 deletions

View File

@ -100,15 +100,12 @@ public class SoftwareConceptAnalyser {
previous = softwareVersion;
}finally {
/* Need to export the original file with the version doi */
if(originalVersion.has(SoftwareVersion.DOI_URL_PROPERTY_NAME)
&& originalVersion.get(SoftwareVersion.DOI_URL_PROPERTY_NAME).getNodeType()==JsonNodeType.NULL
&& softwareVersion.getDOIURL()!=null) {
/* Need to export the original file with the DOI and Version DOI */
if(softwareVersion.getDOIURL()!=null) {
originalVersion.put(SoftwareVersion.DOI_URL_PROPERTY_NAME, softwareVersion.getDOIURL().toString());
}
if((!originalVersion.has(SoftwareVersion.VERSION_DOI_URL_PROPERTY_NAME) || originalVersion.get(SoftwareVersion.VERSION_DOI_URL_PROPERTY_NAME).getNodeType()==JsonNodeType.NULL)
&& softwareVersion.getVersionDOIURL()!=null) {
if(softwareVersion.getVersionDOIURL()!=null) {
originalVersion.put(SoftwareVersion.VERSION_DOI_URL_PROPERTY_NAME, softwareVersion.getVersionDOIURL().toString());
}
@ -116,7 +113,6 @@ public class SoftwareConceptAnalyser {
URL doiURL = softwareVersion.getDOIURL();
softwareConcept.setDOIURL(doiURL);
concept.put(SoftwareConcept.DOI_URL_PROPERTY_NAME, doiURL.toString());
originalVersion.put(SoftwareVersion.DOI_URL_PROPERTY_NAME, doiURL.toString());
}
}
@ -129,8 +125,21 @@ public class SoftwareConceptAnalyser {
throw e;
}finally {
ObjectNode toBeExported = objectMapper.createObjectNode();
toBeExported.replace(CONCEPT_PROPERTY_NAME, concept);
if(concept.has(SoftwareConcept.DOI_URL_PROPERTY_NAME) && concept.get(SoftwareConcept.DOI_URL_PROPERTY_NAME).getNodeType()!=JsonNodeType.NULL) {
String conceptDOIURL = concept.get(SoftwareConcept.DOI_URL_PROPERTY_NAME).asText();
for(i=0; i<exportingVersions.size(); i++) {
ObjectNode v = (ObjectNode) exportingVersions.get(i);
if(v.has(SoftwareVersion.DOI_URL_PROPERTY_NAME) && v.get(SoftwareVersion.DOI_URL_PROPERTY_NAME).getNodeType()!=JsonNodeType.NULL){
String vDOI = concept.get(SoftwareVersion.DOI_URL_PROPERTY_NAME).asText();
if(conceptDOIURL.compareTo(vDOI)==0) {
v.remove(SoftwareVersion.DOI_URL_PROPERTY_NAME);
}
}
}
}
toBeExported.replace(VERSIONS_PROPERTY_NAME, exportingVersions);
toBeExported.replace(PUBLISHERS_PROPERTY_NAME, jsonNode.get(PUBLISHERS_PROPERTY_NAME).deepCopy());
toBeExported.replace(EXPORTERS_PROPERTY_NAME, jsonNode.get(EXPORTERS_PROPERTY_NAME).deepCopy());

View File

@ -139,7 +139,7 @@
"group": "data-publishing",
"files": [
{
"url": "https://nexus.d4science.org/nexus/service/local/repositories/gcube-snapshots/content/org/gcube/data-test/gcat/1.0.0-SNAPSHOT/gcat-1.0.0-20190109.172827-2.war",
"url": "https://nexus.d4science.org/nexus/service/local/repositories/gcube-snapshots/content/org/gcube/data-publishing/gcat/1.0.0-SNAPSHOT/gcat-1.0.0-20190109.172827-2.war",
"desired_name": "{{name}}-v{{version}}.war"
}
],